- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- java.io.DataInputStream
-
- 实现的所有接口
-
Closeable,DataInput,AutoCloseable
public class DataInputStream extends FilterInputStream implements DataInput
数据输入流允许应用程序以与机器无关的方式从底层输入流中读取原始Java数据类型。 应用程序使用数据输出流来写入稍后可由数据输入流读取的数据。DataInputStream对于多线程访问不一定安全。 线程安全是可选的,是本课程中方法用户的责任。
- 从以下版本开始:
- 1.0
- 另请参见:
-
DataOutputStream
-
-
字段汇总
-
声明的属性在类 java.io.FilterInputStream
in
-
-
构造方法摘要
构造方法 构造器 描述 DataInputStream(InputStream in)创建使用指定的基础InputStream的DataInputStream。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 intread(byte[] b)从包含的输入流中读取一些字节数,并将它们存储到缓冲区数组b。intread(byte[] b, int off, int len)从包含的输入流len最多len个字节的数据读入一个字节数组。booleanreadBoolean()参见readBoolean方法DataInput的总合同。bytereadByte()见的总承包readByte的方法DataInput。charreadChar()见的总承包readChar的方法DataInput。doublereadDouble()见的总承包readDouble的方法DataInput。floatreadFloat()见的总承包readFloat的方法DataInput。voidreadFully(byte[] b)参见readFully方法DataInput的总合同。voidreadFully(byte[] b, int off, int len)见的总承包readFully的方法DataInput。intreadInt()见的总承包readInt的方法DataInput。StringreadLine()已过时。此方法无法将字节正确转换为字符。longreadLong()参见readLong方法DataInput的总合同。shortreadShort()见的总承包readShort的方法DataInput。intreadUnsignedByte()参见readUnsignedByte方法DataInput的总合同。intreadUnsignedShort()见的总承包readUnsignedShort的方法DataInput。StringreadUTF()参见readUTF方法DataInput的总合同。static StringreadUTF(DataInput in)从流in读取以modified UTF-8格式编码的Unicode字符串的表示; 然后将此字符串作为String返回。intskipBytes(int n)参见skipBytes方法DataInput的总合同。-
声明方法的类 java.io.FilterInputStream
available, close, mark, markSupported, read, reset, skip
-
声明方法的类 java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
-
-
-
-
构造方法详细信息
-
DataInputStream
public DataInputStream(InputStream in)
创建使用指定的基础InputStream的DataInputStream。- 参数
-
in- 指定的输入流
-
-
方法详细信息
-
read
public final int read(byte[] b) throws IOException从包含的输入流中读取一些字节数,并将它们存储到缓冲区数组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错误。 - 另请参见:
-
FilterInputStream.in,InputStream.read(byte[], int, int)
-
read
public final int read(byte[] b, int off, int len) throws IOException从包含的输入流中读取最多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错误。 - 另请参见:
-
FilterInputStream.in,InputStream.read(byte[], int, int)
-
readFully
public final void readFully(byte[] b) throws IOException见的总承包readFully的方法DataInput。从包含的输入流中读取此操作的字节。
- Specified by:
-
readFully在界面DataInput - 参数
-
b- 读取数据的缓冲区。 - 异常
-
NullPointerException- 如果b是null。 -
EOFException- 如果此输入流在读取所有字节之前到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 - 另请参见:
-
FilterInputStream.in
-
readFully
public final void readFully(byte[] b, int off, int len) throws IOException参见readFully方法DataInput的总合同。从包含的输入流中读取此操作的字节。
- Specified by:
-
readFully在界面DataInput - 参数
-
b- 读取数据的缓冲区。 -
off- 数据数组b的起始偏移量。 -
len- 要读取的字节数。 - 异常
-
NullPointerException- 如果b是null。 -
IndexOutOfBoundsException- 如果off为负数,则len为负数,或len为大于b.length - off。 -
EOFException- 如果此输入流在读取所有字节之前到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 - 另请参见:
-
FilterInputStream.in
-
skipBytes
public final int skipBytes(int n) throws IOException参见skipBytes方法DataInput的总合同。从包含的输入流中读取此操作的字节。
- Specified by:
-
skipBytes,界面DataInput - 参数
-
n- 要跳过的字节数。 - 结果
- 跳过的实际字节数。
- 异常
-
IOException- 如果包含的输入流不支持搜索,或者流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。
-
readBoolean
public final boolean readBoolean() throws IOException参见readBoolean方法DataInput的总合同。从包含的输入流中读取此操作的字节。
- Specified by:
-
readBoolean,界面DataInput - 结果
-
读取的值为
boolean。 - 异常
-
EOFException- 如果此输入流已到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 - 另请参见:
-
FilterInputStream.in
-
readByte
public final byte readByte() throws IOException见的总承包readByte的方法DataInput。从包含的输入流中读取此操作的字节。
- Specified by:
-
readByte,界面DataInput - 结果
-
此输入流的下一个字节为带符号的8位
byte。 - 异常
-
EOFException- 如果此输入流已到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 - 另请参见:
-
FilterInputStream.in
-
readUnsignedByte
public final int readUnsignedByte() throws IOException参见readUnsignedByte方法DataInput的总合同。从包含的输入流中读取此操作的字节。
- Specified by:
-
readUnsignedByte,界面DataInput - 结果
- 此输入流的下一个字节,解释为无符号的8位数。
- 异常
-
EOFException- 如果此输入流已到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 - 另请参见:
-
FilterInputStream.in
-
readShort
public final short readShort() throws IOException参见readShort方法DataInput的总合同。从包含的输入流中读取此操作的字节。
- Specified by:
-
readShort在界面DataInput - 结果
- 此输入流的后两个字节,解释为带符号的16位数字。
- 异常
-
EOFException- 如果此输入流在读取两个字节之前到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 - 另请参见:
-
FilterInputStream.in
-
readUnsignedShort
public final int readUnsignedShort() throws IOException参见readUnsignedShort方法DataInput的总合同。从包含的输入流中读取此操作的字节。
- Specified by:
-
readUnsignedShort在界面DataInput - 结果
- 此输入流的后两个字节,解释为无符号的16位整数。
- 异常
-
EOFException- 如果此输入流在读取两个字节之前到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 - 另请参见:
-
FilterInputStream.in
-
readChar
public final char readChar() throws IOException参见readChar方法DataInput的总合同。从包含的输入流中读取此操作的字节。
- Specified by:
-
readChar在界面DataInput - 结果
-
此输入流的后两个字节,解释为
char。 - 异常
-
EOFException- 如果此输入流在读取两个字节之前到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 - 另请参见:
-
FilterInputStream.in
-
readInt
public final int readInt() throws IOException参见readInt方法DataInput的总合同。从包含的输入流中读取此操作的字节。
- Specified by:
-
readInt在界面DataInput - 结果
-
此输入流的后四个字节,解释为
int。 - 异常
-
EOFException- 如果此输入流在读取四个字节之前到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 - 另请参见:
-
FilterInputStream.in
-
readLong
public final long readLong() throws IOException参见readLong方法DataInput的总合同。从包含的输入流中读取此操作的字节。
- Specified by:
-
readLong在界面DataInput - 结果
-
此输入流的下八个字节,解释为
long。 - 异常
-
EOFException- 如果此输入流在读取八个字节之前到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 - 另请参见:
-
FilterInputStream.in
-
readFloat
public final float readFloat() throws IOException参见readFloat方法DataInput的总合同。从包含的输入流中读取此操作的字节。
- Specified by:
-
readFloat,界面DataInput - 结果
-
此输入流的后四个字节,解释为
float。 - 异常
-
EOFException- 如果此输入流在读取四个字节之前到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 - 另请参见:
-
readInt(),Float.intBitsToFloat(int)
-
readDouble
public final double readDouble() throws IOException参见readDouble方法DataInput的总合同。从包含的输入流中读取此操作的字节。
- Specified by:
-
readDouble在界面DataInput - 结果
-
此输入流的后八个字节,解释为
double。 - 异常
-
EOFException- 如果此输入流在读取八个字节之前到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 - 另请参见:
-
readLong(),Double.longBitsToDouble(long)
-
readLine
@Deprecated public final String readLine() throws IOException
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));参见readLine方法DataInput的总合同。从包含的输入流中读取此操作的字节。
- Specified by:
-
readLine在界面DataInput - 结果
- 此输入流中的下一行文本。
- 异常
-
IOException- 如果发生I / O错误。 - 另请参见:
-
BufferedReader.readLine(),FilterInputStream.in
-
readUTF
public final String readUTF() throws IOException
见的总承包readUTF的方法DataInput。从包含的输入流中读取此操作的字节。
- Specified by:
-
readUTF在界面DataInput - 结果
- Unicode字符串。
- 异常
-
EOFException- 如果此输入流在读取所有字节之前到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 -
UTFDataFormatException- 如果字节不表示字符串的有效修改的UTF-8编码。 - 另请参见:
-
readUTF(java.io.DataInput)
-
readUTF
public static final String readUTF(DataInput in) throws IOException
- 参数
-
in- 数据输入流。 - 结果
- Unicode字符串。
- 异常
-
EOFException- 如果输入流在所有字节之前到达结尾。 -
IOException- 流已关闭且包含的输入流在关闭后不支持读取,或发生另一个I / O错误。 -
UTFDataFormatException- 如果字节不表示Unicode字符串的有效修改的UTF-8编码。 - 另请参见:
-
readUnsignedShort()
-
-