|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.io
类 DataInputStream
java.lang.Object java.io.InputStream java.io.FilterInputStream java.io.DataInputStream
-
public class DataInputStream
- extends FilterInputStream
- implements DataInput
数据输入流允许应用程序以与机器无关方式从基础输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。
- 从以下版本开始:
- JDK1.0
- 另请参见:
-
DataOutputStream
字段摘要 |
---|
从类 java.io.FilterInputStream 继承的字段 |
---|
in |
构造方法摘要 | |
---|---|
DataInputStream(InputStream in) 使用指定的基础 InputStream 创建一个 DataInputStream。 |
方法摘要 | |
---|---|
int |
read(byte[] b) 从所包含的输入流中读取一定数量的字节,并将它们存储到缓冲区数组 b 中。 |
int |
read(byte[] b, int off, int len) 从所包含的输入流中将 len 个字节读入一个字节数组中。 |
boolean |
readBoolean() 参见 DataInput 的 readBoolean 方法的常规协定。 |
byte |
readByte() 参见 DataInput 的 readByte 方法的常规协定。 |
char |
readChar() 参见 DataInput 的 readChar 方法的常规协定。 |
double |
readDouble() 参见 DataInput 的 readDouble 方法的常规协定。 |
float |
readFloat() 参见 DataInput 的 readFloat 方法的常规协定。 |
void |
readFully(byte[] b) 参见 DataInput 的 readFully 方法的常规协定。 |
void |
readFully(byte[] b, int off, int len) 参见 DataInput 的 readFully 方法的常规协定。 |
int |
readInt() 参见 DataInput 的 readInt 方法的常规协定。 |
String |
readLine() 已过时。 该方法无法将字节正确转换为字符。从 JDK 1.1 开始,读取文本行的首选方法是使用 BufferedReader.readLine() 方法。对于使用 DataInputStream 类读取文本行的程序,可以转而使用 BufferedReader 类,实现方式是通过将以下形式的代码:
替换为:DataInputStream d = new DataInputStream(in); BufferedReader d = new BufferedReader(new InputStreamReader(in)); |
long |
readLong() 参见 DataInput 的 readLong 方法的常规协定。 |
short |
readShort() 参见 DataInput 的 readShort 方法的常规协定。 |
int |
readUnsignedByte() 参见 DataInput 的 readUnsignedByte 方法的常规协定。 |
int |
readUnsignedShort() 参见 DataInput 的 readUnsignedShort 方法的常规协定。 |
String |
readUTF() 参见 DataInput 的 readUTF 方法的常规协定。 |
static String |
readUTF(DataInput in) 从流 in 中读取用 UTF-8 修改版格式编码的 Unicode 字符格式的字符串;然后以 String 形式返回此字符串。 |
int |
skipBytes(int n) 参见 DataInput 的 skipBytes 方法的常规协定。 |
从类 java.io.FilterInputStream 继承的方法 |
---|
available, close, mark, markSupported, read, reset, skip |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
DataInputStream
public DataInputStream(InputStream in)
-
使用指定的基础 InputStream 创建一个 DataInputStream。
- 参数:
-
in
- 指定输入流
方法详细信息 |
---|
read
public final int read(byte[] b) throws IOException
-
从所包含的输入流中读取一定数量的字节,并将它们存储到缓冲区数组
b
中。以整数形式返回实际读取的字节数。在输入数据可用、检测到文件末尾 (end of file) 或抛出异常之前,此方法将一直阻塞。如果
b
为 null,则抛出NullPointerException
。如果b
的长度为零,则不读取字节并返回0
;否则试图读取至少一个字节。如果因为该流在文件末尾而无字节可用,则返回值-1
;否则至少读取一个字节并将其存储到b
中。将读取的第一个字节存储到元素
b[0]
中,将下一个字节存储到b[1]
中,依此类推。读取的字节数至多等于b
的长度。设k
为实际读取的字节数;这些字节将存储在从b[0]
到b[k-1]
的元素中,b[k]
到b[b.length-1]
的元素不受影响。如果因为文件末尾以外的其他原因而无法读取第一个字节,则抛出
IOException
。尤其在输入流已关闭的情况下,将抛出IOException
。read(b)
方法与以下方法的效果相同:read(b, 0, b.length)
-
- 覆盖:
-
类
FilterInputStream
中的read
-
- 参数:
-
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
个字节,但可能读取较少的字节数,该字节数也可能为零。以整数形式返回实际读取的字节数。在输入数据可用、检测到文件末尾或抛出异常之前,此方法将阻塞。
如果
b
为null
,则抛出NullPointerException
。如果
off
为负,或len
为负,抑或off+len
大于数组b
的长度,则抛出IndexOutOfBoundsException
。如果
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]
的元素都不受影响。如果因为文件末尾以外的其他原因而无法读取第一个字节,则抛出
IOException
。尤其在输入流已关闭的情况下,将抛出IOException
。 -
- 覆盖:
-
类
FilterInputStream
中的read
-
- 参数:
-
b
- 存储读取数据的缓冲区。 -
off
- 数据的起始偏移量。 -
len
- 读取的最大字节数。 - 返回:
-
读入缓冲区的字节总数,如果因为已经到达流的末尾而没有更多的数据,则返回
-1
。 - 抛出:
-
IOException
- 如果发生 I/O 错误。 - 另请参见:
-
FilterInputStream.in
,InputStream.read(byte[], int, int)
readFully
public final void readFully(byte[] b) throws IOException
-
参见
DataInput
的readFully
方法的常规协定。从所包含的输入流中读取此操作需要的字节。
-
- 参数:
-
b
- 存储读取数据的缓冲区。 - 抛出:
-
EOFException
- 如果此输入流在读取所有字节之前到达末尾。 -
IOException
- 如果发生 I/O 错误。 - 另请参见:
-
FilterInputStream.in
readFully
public final void readFully(byte[] b, int off, int len) throws IOException
-
参见
DataInput
的readFully
方法的常规协定。从所包含的输入流中读取此操作需要的字节。
-
- 参数:
-
b
- 存储读取数据的缓冲区。 -
off
- 数据的起始偏移量。 -
len
- 要读取的字节数。 - 抛出:
-
EOFException
- 如果此输入流在读取所有字节之前到达末尾。 -
IOException
- 如果发生 I/O 错误。 - 另请参见:
-
FilterInputStream.in
skipBytes
public final int skipBytes(int n) throws IOException
-
参见
DataInput
的skipBytes
方法的常规协定。从所包含的输入流中读取此操作需要的字节。
-
- 参数:
-
n
- 要跳过的字节数。 - 返回:
- 实际跳过的字节数。
- 抛出:
-
IOException
- 如果发生 I/O 错误。
readBoolean
public final boolean readBoolean() throws IOException
-
参见
DataInput
的readBoolean
方法的常规协定。从所包含的输入流中读取此操作需要的字节。
-
- 指定者:
-
接口
DataInput
中的readBoolean
-
- 返回:
-
读取的
boolean
值。 - 抛出:
-
EOFException
- 如果此输入流已经到达末尾。 -
IOException
- 如果发生 I/O 错误。 - 另请参见:
-
FilterInputStream.in
readByte
public final byte readByte() throws IOException
-
参见
DataInput
的readByte
方法的常规协定。从所包含的输入流中读取此操作需要的字节。
-
- 返回:
-
此输入流的下一个字节,以有符号的 8 位
byte
的形式。 - 抛出:
-
EOFException
- 如果此输入流已经到达末尾。 -
IOException
- 如果发生 I/O 错误。 - 另请参见:
-
FilterInputStream.in