public interface DataInput
DataInput接口提供了从一个二进制流,重建他们的数据在任何java读取字节的原始类型。还有一个重建在
modified UTF-8格式的数据
String设施。
它通常是在这个界面所有的阅读程序真实,如果文件结束之前的字节所需数量一直读到,一个EOFException(这是一种IOException)被。如果任何一个字节不能读取的文件比其他任何原因,除了EOFException抛出一个IOException。特别是,一个IOException可能如果输入流已经关闭扔。
数据输入和数据输出接口的实现代表Unicode字符串在一个UTF-8格式略有修改。(有关标准的UTF-8格式,参见3.9节编码形式Unicode Unicode标准4版)。请注意,在下表中,最显着的位出现在远左列中。
All characters in the range '\u0001'to'\u007F'are represented by a single byte:Bit Values Byte 1 0 bits 6-0 The null character '\u0000'and characters in the range'\u0080'to'\u07FF'are represented by a pair of bytes:Bit Values Byte 1 1 1 0 bits 10-6 Byte 2 1 0 bits 5-0 charvalues in the range'\u0800'to'\uFFFF'are represented by three bytes:Bit Values Byte 1 1 1 1 0 bits 15-12 Byte 2 1 0 bits 11-6 Byte 3 1 0 bits 5-0
这种格式和标准的UTF-8格式的区别如下:
'\u0000'编码的字节格式而不是字节,使编码的字符串不会嵌入空。DataInputStream,
DataOutput
| Modifier and Type | Method and Description |
|---|---|
boolean |
readBoolean()
读取一个字节输入并返回
true如果这个字节为零,
false如果这个字节为零。
|
byte |
readByte()
读取并返回一个输入字节。
|
char |
readChar()
读两输入字节并返回一个
char价值。
|
double |
readDouble()
八字节读取输入并返回一个
double价值。
|
float |
readFloat()
四字节读取输入并返回一个
float价值。
|
void |
readFully(byte[] b)
从输入流中读取一些字节并将它们存储到缓冲数组
b。
|
void |
readFully(byte[] b, int off, int len)
len字节输入流中读取。
|
int |
readInt()
四字节读取输入并返回一个
int价值。
|
String |
readLine()
从输入流读取下一行文本。
|
long |
readLong()
八字节读取输入并返回一个
long价值。
|
short |
readShort()
读两输入字节并返回一个
short价值。
|
int |
readUnsignedByte()
读取一个字节的输入,零延伸到型
int,并返回结果,因此在范围
0通过
255。
|
int |
readUnsignedShort()
读两输入字节并返回一个值的范围
0
int通过
65535。
|
String |
readUTF()
读取一个字符串,一直采用
modified UTF-8编码格式。
|
int |
skipBytes(int n)
试图跳过
n字节输入流中的数据,丢弃跳过的字节。
|
void readFully(byte[] b)
throws IOException
b。已读取的字节数等于
b长度。
此方法块,直到下列条件之一发生:
b.length字节的输入数据是可用的,在这种情况下,一个正常的回报了。EOFException抛出。EOFException抛出一个IOException。如果b是null,一NullPointerException抛出。如果b.length是零,那么没有字节读。否则,第一个字节存储在单元b[0],未来一到b[1],等等。如果从这个方法抛出异常,那么它可能是一些但不是所有字节的b已从输入流中的数据更新。
b -缓冲区中读取数据。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
void readFully(byte[] b,
int off,
int len)
throws IOException
len字节输入流中读取。
此方法块,直到下列条件之一发生:
len字节的输入数据是可用的,在这种情况下,一个正常的回报了。EOFException抛出。IOException以外EOFException抛出。如果b是null,一NullPointerException抛出。如果off是负的,或len是负的,或off+len大于数组b的长度,然后IndexOutOfBoundsException抛出。如果len是零,那么没有字节读。否则,第一个字节存储在单元b[off],未来一到b[off+1],等等。读取的字节数,最多等于len。
b -缓冲区中读取数据。
off -指定偏移到数据int。
len -指定要读取的字节数int。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
int skipBytes(int n)
throws IOException
n字节输入流中的数据,丢弃跳过的字节。然而,它可能跳过一些较小的字节数,可能为零。这可能会导致任何一个条件;在
n字节已经跳过到达了文件的结尾只有一种可能性。这种方法从未抛出一个
EOFException。跳过的字节数实际返回。
n -字节数被跳过。
IOException如果I/O错误发生。
boolean readBoolean()
throws IOException
true如果这个字节为零,
false如果这个字节为零。这种方法适用于读取字节的
DataOutput
writeBoolean法编写的界面。
boolean阅读的价值。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
byte readByte()
throws IOException
-128通过
127,包容。这种方法适用于读取字节的
DataOutput
writeByte法编写的界面。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
int readUnsignedByte()
throws IOException
int,并返回结果,因此在范围
0通过
255。这种方法适用于读取字节写的界面
DataOutput的
writeByte方法如果参数
writeByte本来是一个范围值
0通过
255。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
short readShort()
throws IOException
short价值。让
a是第一个字节的读
b是第二字节。返回值:
(short)((a << 8) | (b & 0xff))
此法适用于读取字节的
DataOutput
writeShort法编写的界面。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
int readUnsignedShort()
throws IOException
int值范围在
0通过
65535。让
a是第一个字节的读
b是第二字节。返回值:
(((a & 0xff) << 8) | (b & 0xff))
此法适用于读取字节写的界面
DataOutput的
writeShort方法如果参数
writeShort本来是一个范围值
0通过
65535。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
char readChar()
throws IOException
char价值。让
a是第一个字节的读
b是第二字节。返回值:
(char)((a << 8) | (b & 0xff))
此法适用于阅读的界面
DataOutput的
writeChar方法写入的字节。
char阅读的价值。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
int readInt()
throws IOException
int价值。让
a-d是第一个通过第四个字节。返回值:
(((a & 0xff) << 24) | ((b & 0xff) << 16) |
((c & 0xff) << 8) | (d & 0xff))
此法适用于阅读的界面
DataOutput的
writeInt方法写入的字节。
int阅读的价值。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
long readLong()
throws IOException
long价值。让
a-h是第一个通过第八个字节。返回值:
(((long)(a & 0xff) << 56) |
((long)(b & 0xff) << 48) |
((long)(c & 0xff) << 40) |
((long)(d & 0xff) << 32) |
((long)(e & 0xff) << 24) |
((long)(f & 0xff) << 16) |
((long)(g & 0xff) << 8) |
((long)(h & 0xff)))
这种方法适用于阅读的界面DataOutput的writeLong方法写入的字节。
long阅读的价值。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
float readFloat()
throws IOException
float价值。这是通过首先在完全的
readInt方法的方式构建一个
int值,然后将这一
float
int值准确的方法
Float.intBitsToFloat方式。这种方法适用于阅读的界面
DataOutput的
writeFloat方法写入的字节。
float阅读的价值。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
double readDouble()
throws IOException
double价值。这是通过首先在完全的
readLong方法的方式构建
long值,然后将这一
double
long值准确的方法
Double.longBitsToDouble方式。这种方法适用于阅读的界面
DataOutput的
writeDouble方法写入的字节。
double阅读的价值。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
String readLine() throws IOException
String然后返回。请注意,因为此方法处理字节,它不支持完整的Unicode字符集的输入。
如果文件结束之前遇到甚至一个字节可以读取,然后null返回。否则,每个字节读取由零扩展转换为类型char。如果遇到的是性格'\n',它是被丢弃的,阅读时。如果遇到的是性格'\r',就丢弃,如果下面的字节转换为字符'\n',然后被丢弃的也;阅读然后停止。如果文件结束之前遇到的人物'\n'和'\r'时,停止阅读。一旦阅读已经停止,一个String返回包含所有字符读不丢弃,以。请注意,此字符串中的每个字符都有一个值小于\u0100,即(char)256。
null如果遇到文件结束前一个字节可以读取。
IOException如果I/O错误发生。
String readUTF() throws IOException
readUTF一般合同,它读取Unicode字符串在改进后的UTF-8编码格式的表示;这个字符串是作为
String返回。
首先,两字节读取和使用的方法完全readUnsignedShort方式构建一个16位无符号整数。这个整数的值称为utf长度和指定要读取额外的字节数。这些字节,然后转换为字符,考虑他们在组。每个组的长度是从组的第一个字节的值计算的。一组下面的字节,如果有的话,是下一组的第一个字节。
如果一个组的第一个字节和位模式0xxxxxxx(其中x意味着“可能0或1”),然后组只包括字节。字节为零扩展到形成字符。
如果一个组的第一个字节和位模式110xxxxx,然后小组组成的字节a和第二字节b。如果没有字节b(因为字节a是最后一个字节被读取),或如果字节b不匹配的位模式10xxxxxx,然后UTFDataFormatException是扔。否则,将该组转换为字符:
(char)(((a & 0x1F) << 6) | (b & 0x3F))
如果一组的第一个字节和位模式
1110xxxx,然后小组组成的字节
a和两个字节
b和
c。如果没有字节
c(因为字节
a是一个字节的最后两读入),或
b字节或字节
c不匹配的位模式
10xxxxxx,然后
UTFDataFormatException抛出。否则,该组转换为字符:
(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
如果一组的第一个字节匹配模式
1111xxxx或模式
10xxxxxx,然后
UTFDataFormatException抛出。
如果文件结束时在任何时间,在这个过程中,然后EOFException抛出。
在每一组已转化为这一过程的一个人物,人物都聚集在一起,在同一顺序中相应组从输入流中读取,以形成一个String,返回的。
界面DataOutput的writeUTF方法可以用来编写,适合阅读的方法的数据。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
UTFDataFormatException如果字节没有表示一个有效的修改一个字符串编码UTF-8。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.