- 所有已实现的接口:
-
Closeable
,DataInput
,AutoCloseable
DataInputStream不适合多个并发线程使用。如果要由多个线程使用DataInputStream,则应通过适当的同步来控制对数据输入流的访问。
- 自:
- 1.0
- 参见:
-
Field Summary
Fields declared in class java.io.FilterInputStream
in
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal int
read
(byte[] b) 从包含的输入流中读取一些字节并将它们存储到缓冲区数组 b 中。final int
read
(byte[] b, int off, int len) 从包含的输入流中最多读取len
字节的数据到字节数组中。final boolean
查看DataInput
的readBoolean
方法的一般约定。final byte
readByte()
查看DataInput
的readByte
方法的一般约定。final char
readChar()
查看DataInput
的readChar
方法的一般约定。final double
查看DataInput
的readDouble
方法的一般约定。final float
查看DataInput
的readFloat
方法的一般约定。final void
readFully
(byte[] b) 查看DataInput
的readFully
方法的一般约定。final void
readFully
(byte[] b, int off, int len) 查看DataInput
的readFully
方法的一般约定。final int
readInt()
查看DataInput
的readInt
方法的一般约定。final String
readLine()
已弃用。此方法未正确将字节转换为字符。final long
readLong()
查看DataInput
的readLong
方法的一般约定。final short
查看DataInput
的readShort
方法的一般约定。final int
查看DataInput
的readUnsignedByte
方法的一般约定。final int
查看DataInput
的readUnsignedShort
方法的一般约定。final String
readUTF()
查看DataInput
的readUTF
方法的一般约定。static final String
从流in
中读取以modified UTF-8
格式编码的Unicode字符字符串的表示形式;然后将这些字符作为String
返回。final int
skipBytes
(int n) 查看DataInput
的skipBytes
方法的一般约定。Methods declared in class java.io.FilterInputStream
available, close, mark, markSupported, read, reset, skip
Methods 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 theDataInputStream
class to read lines can be converted to use theBufferedReader
class by replacing code of the form: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编码。 - 参见:
-