- 所有已实现的接口:
-
Closeable,DataInput,AutoCloseable
DataInputStream不适合多个并发线程使用。如果要由多个线程使用DataInputStream,则应通过适当的同步来控制对数据输入流的访问。
- 自:
- 1.0
- 参见:
-
Field Summary
Fields declared in class java.io.FilterInputStream
in -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal intread(byte[] b) 从包含的输入流中读取一些字节并将它们存储到缓冲区数组 b 中。final intread(byte[] b, int off, int len) 从包含的输入流中最多读取len字节的数据到字节数组中。final boolean查看DataInput的readBoolean方法的一般约定。final bytereadByte()查看DataInput的readByte方法的一般约定。final charreadChar()查看DataInput的readChar方法的一般约定。final double查看DataInput的readDouble方法的一般约定。final float查看DataInput的readFloat方法的一般约定。final voidreadFully(byte[] b) 查看DataInput的readFully方法的一般约定。final voidreadFully(byte[] b, int off, int len) 查看DataInput的readFully方法的一般约定。final intreadInt()查看DataInput的readInt方法的一般约定。final StringreadLine()已弃用。此方法未正确将字节转换为字符。final longreadLong()查看DataInput的readLong方法的一般约定。final short查看DataInput的readShort方法的一般约定。final int查看DataInput的readUnsignedByte方法的一般约定。final int查看DataInput的readUnsignedShort方法的一般约定。final StringreadUTF()查看DataInput的readUTF方法的一般约定。static final String从流in中读取以modified UTF-8格式编码的Unicode字符字符串的表示形式;然后将这些字符作为String返回。final intskipBytes(int n) 查看DataInput的skipBytes方法的一般约定。Methods declared in class java.io.FilterInputStream
available, close, mark, markSupported, read, reset, skipMethods declared in class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
Constructor Details
-
DataInputStream
创建一个使用指定底层InputStream的DataInputStream。- 参数:
-
in- 指定的输入流
-
-
Method Details
-
read
从包含的输入流中读取一些字节并将它们存储到缓冲区数组 b 中。实际读取的字节数作为整数返回。此方法会阻塞,直到有输入数据可用,检测到文件结束,或抛出异常。如果
b为null,则会抛出NullPointerException。如果b的长度为零,则不会读取任何字节,并返回0;否则,将尝试读取至少一个字节。如果没有字节可用,因为流已到达文件末尾,则返回值为-1;否则,将读取至少一个字节并存储到b中。第一个读取的字节存储在元素
b[0]中,下一个字节存储在b[1]中,依此类推。读取的字节数最多等于b的长度。设k为实际读取的字节数;这些字节将存储在元素b[0]到b[k-1]中,使元素b[k]到b[b.length-1]不受影响。read(b)方法的效果与以下相同:read(b, 0, b.length)
- 覆盖:
-
read在类中FilterInputStream - 参数:
-
b- 读取数据的缓冲区。 - 返回:
-
读入缓冲区的总字节数,如果没有更多数据,因为已到达流的末尾,则返回
-1。 - 抛出:
-
IOException- 如果由于除文件结束之外的任何原因无法读取第一个字节,流已关闭且底层输入流不支持关闭后读取,或发生其他I/O错误。 - 参见:
-
read
从包含的输入流中最多读取len字节的数据到字节数组中。尝试读取尽可能多的len字节,但可能读取的数量较少,甚至为零。实际读取的字节数作为整数返回。此方法会阻塞,直到有输入数据可用,检测到文件结束,或抛出异常。
如果
len为零,则不会读取任何字节,并返回0;否则,将尝试读取至少一个字节。如果没有字节可用,因为流已到达文件末尾,则返回值为-1;否则,将读取至少一个字节并存储到b中。第一个读取的字节存储在元素
b[off]中,下一个字节存储在b[off+1]中,依此类推。读取的字节数最多等于len。设k为实际读取的字节数;这些字节将存储在元素b[off]到b[off+k-1]中,使元素b[off+k]到b[off+len-1]不受影响。在每种情况下,元素
b[0]到b[off]和元素b[off+len]到b[b.length-1]不受影响。- 覆盖:
-
read在类中FilterInputStream - 参数:
-
b- 读取数据的缓冲区。 -
off- 目标数组b中的起始偏移量。 -
len- 最大读取的字节数。 - 返回:
-
读入缓冲区的总字节数,如果没有更多数据,因为已到达流的末尾,则返回
-1。 - 抛出:
-
NullPointerException- 如果b为null。 -
IndexOutOfBoundsException- 如果off为负数,len为负数,或len大于b.length - off -
IOException- 如果由于除文件结束之外的任何原因无法读取第一个字节,流已关闭且底层输入流不支持关闭后读取,或发生其他I/O错误。 - 参见:
-
readFully
查看DataInput的readFully方法的一般约定。此操作的字节从包含的输入流中读取。
- 指定者:
-
readFully在接口中DataInput - 参数:
-
b- 读取数据的缓冲区。 - 抛出:
-
NullPointerException- 如果b为null。 -
EOFException- 如果此输入流在读取所有字节之前到达结尾。 -
IOException- 流已关闭且包含的输入流不支持关闭后读取,或发生其他I/O错误。 - 参见:
-
readFully
查看DataInput的readFully方法的一般约定。此操作的字节从包含的输入流中读取。
- 指定者:
-
readFully在接口DataInput - 参数:
-
b- 读取数据的缓冲区。 -
off- 数据数组b中的起始偏移量。 -
len- 要读取的字节数。 - 抛出:
-
NullPointerException- 如果b为null。 -
IndexOutOfBoundsException- 如果off为负数,len为负数,或len大于b.length - off。 -
EOFException- 如果此输入流在读取所有字节之前到达末尾。 -
IOException- 流已关闭且包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 - 参见:
-
skipBytes
查看DataInput中skipBytes方法的一般约定。此操作的字节是从包含的输入流中读取的。
- 指定者:
-
skipBytes在接口DataInput - 参数:
-
n- 要跳过的字节数。 - 返回:
- 实际跳过的字节数。
- 抛出:
-
IOException- 如果包含的输入流不支持寻址,或流已关闭且包含的输入流不支持关闭后继续读取,或发生其他I/O错误。
-
readBoolean
查看DataInput中readBoolean方法的一般约定。此操作的字节是从包含的输入流中读取的。
- 指定者:
-
readBoolean在接口DataInput - 返回:
-
读取的
boolean值。 - 抛出:
-
EOFException- 如果此输入流已到达末尾。 -
IOException- 流已关闭且包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 - 参见:
-
readByte
查看DataInput中readByte方法的一般约定。此操作的字节是从包含的输入流中读取的。
- 指定者:
-
readByte在接口DataInput - 返回:
-
作为有符号8位
byte的此输入流的下一个字节。 - 抛出:
-
EOFException- 如果此输入流已到达末尾。 -
IOException- 流已关闭且包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 - 参见:
-
readUnsignedByte
查看DataInput中readUnsignedByte方法的一般约定。此操作的字节是从包含的输入流中读取的。
- 指定者:
-
readUnsignedByte在接口DataInput - 返回:
- 此输入流的下一个字节,解释为无符号8位数字。
- 抛出:
-
EOFException- 如果此输入流已到达末尾。 -
IOException- 流已关闭且包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 - 参见:
-
readShort
查看DataInput中readShort方法的一般约定。此操作的字节是从包含的输入流中读取的。
- 指定者:
-
readShort在接口DataInput - 返回:
- 此输入流的下两个字节,解释为有符号16位数字。
- 抛出:
-
EOFException- 如果在读取两个字节之前此输入流到达末尾。 -
IOException- 流已关闭且包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 - 参见:
-
readUnsignedShort
查看DataInput中readUnsignedShort方法的一般约定。此操作的字节是从包含的输入流中读取的。
- 指定者:
-
readUnsignedShort在接口DataInput - 返回:
- 此输入流的下两个字节,解释为无符号16位整数。
- 抛出:
-
EOFException- 如果在读取两个字节之前此输入流到达末尾。 -
IOException- 流已关闭且包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 - 参见:
-
readChar
查看DataInput中readChar方法的一般约定。此操作的字节是从包含的输入流中读取的。
- 指定者:
-
readChar在接口DataInput - 返回:
-
此输入流的下两个字节,解释为
char。 - 抛出:
-
EOFException- 如果在读取两个字节之前此输入流到达末尾。 -
IOException- 流已关闭且包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 - 参见:
-
readInt
查看DataInput中readInt方法的一般约定。此操作的字节是从包含的输入流中读取的。
- 指定者:
-
readInt在接口DataInput - 返回:
-
此输入流的下四个字节,解释为
int。 - 抛出:
-
EOFException- 如果在读取四个字节之前此输入流到达末尾。 -
IOException- 流已关闭且包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 - 参见:
-
readLong
查看DataInput中readLong方法的一般约定。此操作的字节是从包含的输入流中读取的。
- 指定者:
-
readLong在接口DataInput - 返回:
-
此输入流的下八个字节,解释为
long。 - 抛出:
-
EOFException- 如果在读取八个字节之前此输入流到达末尾。 -
IOException- 流已关闭且包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 - 参见:
-
readFloat
查看DataInput中readFloat方法的一般约定。此操作的字节是从包含的输入流中读取的。
- 指定者:
-
readFloat在接口DataInput中 - 返回值:
-
从输入流中解释为
float的下一个四个字节。 - 抛出:
-
EOFException- 如果在读取四个字节之前,此输入流到达末尾。 -
IOException- 流已关闭,包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 - 参见:
-
readDouble
查看DataInput中readDouble方法的一般约定。此操作的字节从包含的输入流中读取。
- 指定者:
-
readDouble在接口DataInput中 - 返回值:
-
从输入流中解释为
double的下一个八个字节。 - 抛出:
-
EOFException- 如果在读取八个字节之前,此输入流到达末尾。 -
IOException- 流已关闭,包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 - 参见:
-
readLine
Deprecated.This method does not properly convert bytes to characters. As of JDK 1.1, the preferred way to read lines of text is via theBufferedReader.readLine()method. Programs that use theDataInputStreamclass to read lines can be converted to use theBufferedReaderclass by replacing code of the form:
with:DataInputStream d = new DataInputStream(in);
BufferedReader d = new BufferedReader(new InputStreamReader(in));查看DataInput中readLine方法的一般约定。此操作的字节从包含的输入流中读取。
- 指定者:
-
readLine在接口DataInput中 - 返回值:
- 从输入流中读取的下一行文本。
- 抛出:
-
IOException- 如果发生I/O错误。 - 参见:
-
readUTF
查看DataInput中readUTF方法的一般约定。此操作的字节从包含的输入流中读取。
- 指定者:
-
readUTF在接口DataInput中 - 返回值:
- 一个Unicode字符串。
- 抛出:
-
EOFException- 如果在读取所有字节之前,此输入流到达末尾。 -
IOException- 流已关闭,包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 -
UTFDataFormatException- 如果字节不表示字符串的有效修改UTF-8编码。 - 参见:
-
readUTF
从流in中读取一个使用修改后的UTF-8格式编码的Unicode字符字符串的表示形式;然后将这个字符字符串作为String返回。修改后的UTF-8表示的细节与DataInput中readUTF方法完全相同。- 参数:
-
in- 数据输入流。 - 返回值:
- 一个Unicode字符串。
- 抛出:
-
EOFException- 如果输入流在所有字节之前到达末尾。 -
IOException- 流已关闭,包含的输入流不支持关闭后继续读取,或发生其他I/O错误。 -
UTFDataFormatException- 如果字节不表示Unicode字符串的有效修改UTF-8编码。 - 参见:
-