|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.io.InputStream java.io.FilterInputStream java.io.DataInputStream
public class DataInputStream
数据输入流允许应用程序以与机器无关方式从基础输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。
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 |
构造方法详细信息 |
---|
public DataInputStream(InputStream in)
in
- 指定输入流方法详细信息 |
---|
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)
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)
public final void readFully(byte[] b) throws IOException
DataInput
的 readFully
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readFully
b
- 存储读取数据的缓冲区。
EOFException
- 如果此输入流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。FilterInputStream.in
public final void readFully(byte[] b, int off, int len) throws IOException
DataInput
的 readFully
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readFully
b
- 存储读取数据的缓冲区。off
- 数据的起始偏移量。len
- 要读取的字节数。
EOFException
- 如果此输入流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。FilterInputStream.in
public final int skipBytes(int n) throws IOException
DataInput
的 skipBytes
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 skipBytes
n
- 要跳过的字节数。
IOException
- 如果发生 I/O 错误。public final boolean readBoolean() throws IOException
DataInput
的 readBoolean
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readBoolean
boolean
值。
EOFException
- 如果此输入流已经到达末尾。
IOException
- 如果发生 I/O 错误。FilterInputStream.in
public final byte readByte() throws IOException
DataInput
的 readByte
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readByte
byte
的形式。
EOFException
- 如果此输入流已经到达末尾。
IOException
- 如果发生 I/O 错误。FilterInputStream.in
public final int readUnsignedByte() throws IOException
DataInput
的 readUnsignedByte
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readUnsignedByte
EOFException
- 如果此输入流已经到达末尾。
IOException
- 如果发生 I/O 错误。FilterInputStream.in
public final short readShort() throws IOException
DataInput
的 readShort
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readShort
EOFException
- 如果此输入流在读取这两个字节之前到达末尾。
IOException
- 如果发生 I/O 错误。FilterInputStream.in
public final int readUnsignedShort() throws IOException
DataInput
的 readUnsignedShort
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readUnsignedShort
EOFException
- 如果此输入流在读取这两个字节之前到达末尾。
IOException
- 如果发生 I/O 错误。FilterInputStream.in
public final char readChar() throws IOException
DataInput
的 readChar
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readChar
EOFException
- 如果此输入流在读取这两个字节之前到达末尾。
IOException
- 如果发生 I/O 错误。FilterInputStream.in
public final int readInt() throws IOException
DataInput
的 readInt
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readInt
int
。
EOFException
- 如果此输入流在读取这四个字节之前到达末尾。
IOException
- 如果发生 I/O 错误。FilterInputStream.in
public final long readLong() throws IOException
DataInput
的 readLong
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readLong
long
。
EOFException
- 如果此输入流在读取这八个字节之前到达末尾。
IOException
- 如果发生 I/O 错误。FilterInputStream.in
public final float readFloat() throws IOException
DataInput
的 readFloat
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readFloat
float
。
EOFException
- 如果此输入流在读取这四个字节之前到达末尾。
IOException
- 如果发生 I/O 错误。readInt()
,
Float.intBitsToFloat(int)
public final double readDouble() throws IOException
DataInput
的 readDouble
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readDouble
double
。
EOFException
- 如果此输入流在读取这八个字节之前到达末尾。
IOException
- 如果发生 I/O 错误。readLong()
,
Double.longBitsToDouble(long)
@Deprecated public final String readLine() throws IOException
BufferedReader.readLine()
方法。对于使用 DataInputStream
类读取文本行的程序,可以转而使用 BufferedReader
类,实现方式是通过将以下形式的代码:
替换为:DataInputStream d = new DataInputStream(in);
BufferedReader d = new BufferedReader(new InputStreamReader(in));
DataInput
的 readLine
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readLine
IOException
- 如果发生 I/O 错误。BufferedReader.readLine()
,
FilterInputStream.in
public final String readUTF() throws IOException
DataInput
的 readUTF
方法的常规协定。
从所包含的输入流中读取此操作需要的字节。
DataInput
中的 readUTF
EOFException
- 如果此输入流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。
UTFDataFormatException
- 如果这些字节不表示一个有效的、UTF-8 修改版编码的字符串。readUTF(java.io.DataInput)
public static final String readUTF(DataInput in) throws IOException
in
中读取用 UTF-8 修改版格式编码的 Unicode 字符格式的字符串;然后以 String
形式返回此字符串。UTF-8 修改版的表示形式的一些细节与 DataInput
的 readUTF
方法完全相同。
in
- 数据输入流。
EOFException
- 如果此输入流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。
UTFDataFormatException
- 如果这些字节不表示一个有效的、UTF-8 修改版编码的 Unicode 字符串。readUnsignedShort()
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。