public interface DataOutput
DataOutput
接口提供将数据从任何Java基本类型转换为一系列字节,并将这些字节写入二进制流。
还有一种将String
转换为modified UTF-8格式并编写结果字节系列的功能。
对于写入字节的这个接口中的所有方法,一般来说,如果一个字节不能由于任何原因写入,则抛出一个IOException
。
DataInput
, DataOutputStream
Modifier and Type | Method and Description |
---|---|
void |
write(byte[] b)
将输出流写入数组
b 中的所有字节。
|
void |
write(byte[] b, int off, int len)
从阵列
b 写入
len 字节,以输出流。
|
void |
write(int b)
向输出流写入参数
b 的八个低位。
|
void |
writeBoolean(boolean v)
将
boolean 值写入此输出流。
|
void |
writeByte(int v)
向输出流写入参数
v 的八个低位位。
|
void |
writeBytes(String s)
将一个字符串写入输出流。
|
void |
writeChar(int v)
将两个字节组成的
char 值写入输出流。
|
void |
writeChars(String s)
写入每一个字符在字符串中
s ,到输出流中,为了,每个字符使用两个字节。
|
void |
writeDouble(double v)
将
double 值(由8个字节组成)写入输出流。
|
void |
writeFloat(float v)
将
float 值写入输出流,该值由四个字节组成。
|
void |
writeInt(int v)
将
int 值(由四个字节组成)写入输出流。
|
void |
writeLong(long v)
将
long 值(由八个字节组成)写入输出流。
|
void |
writeShort(int v)
将两个字节写入输出流以表示参数的值。
|
void |
writeUTF(String s)
将两个字节的长度信息写入输出流,其后是
字符串 s中每个字符的
s 。
|
void write(int b) throws IOException
b
的八个低位。
b
的24位b
被忽略。
b
- 要写入的字节。
IOException
- 如果发生I / O错误。
void write(byte[] b) throws IOException
b
中的所有字节。
如果b
是null
,则抛出一个NullPointerException
。
如果b.length
为零,则不会写入任何字节。
否则,首先写入字节b[0]
,然后写入b[1]
,等等;
写入的最后一个字节是b[b.length-1]
。
b
- 数据。
IOException
- 如果发生I / O错误。
void write(byte[] b, int off, int len) throws IOException
len
字节从阵列b
写入,输出流。
如果b
是null
,则抛出一个NullPointerException
。
如果off
为负数,或len
为负数,或off+len
大于数组b
的长度,则抛出IndexOutOfBoundsException
。
如果len
为零,则不会写入任何字节。
否则,先写字节b[off]
,然后b[off+1]
,等等;
写入的最后一个字节是b[off+len-1]
。
b
- 数据。
off
- 数据中的起始偏移量。
len
- 要写入的字节数。
IOException
- 如果发生I / O错误。
void writeBoolean(boolean v) throws IOException
boolean
值写入此输出流。
如果参数v
为true
,则写入值(byte)1
;
如果v
是false
,则写入值(byte)0
。
由该方法写入的字节可以由readBoolean
的readBoolean DataInput
,然后返回boolean
等于v
。
v
- 要写入的布尔值。
IOException
- 如果发生I / O错误。
void writeByte(int v) throws IOException
v
的八个低位位。
v
的24位v
被忽略。
(这意味着writeByte
不完全一样的东西作为write
为整数参数。)此方法写入的字节可以由读取readByte
接口的方法DataInput
,然后将返回一个byte
等于(byte)v
。
v
- 要写入的字节值。
IOException
- 如果发生I / O错误。
void writeShort(int v) throws IOException
(byte)(0xff & (v >> 8)) (byte)(0xff & v)
由该方法写入的字节可以由readShort
的readShort DataInput
,然后返回short
等于(short)v
。
v
-
short
值。
IOException
- 如果发生I / O错误。
void writeChar(int v) throws IOException
char
值写入输出流。
要写入的字节值按照显示的顺序是:
(byte)(0xff & (v >> 8)) (byte)(0xff & v)
用这种方法写入的字节可以由读取readChar
接口的方法DataInput
,然后将返回一个char
等于(char)v
。
v
-
char
值。
IOException
- 如果发生I / O错误。
void writeInt(int v) throws IOException
int
值写入输出流,该值由四个字节组成。
要写入的字节值按照显示的顺序是:
(byte)(0xff & (v >> 24)) (byte)(0xff & (v >> 16)) (byte)(0xff & (v >> 8)) (byte)(0xff & v)
用这种方法写入的字节可以由读取readInt
接口的方法DataInput
,则这将返回一个int
等于v
。
v
- 要写入的
int
值。
IOException
- 如果发生I / O错误。
void writeLong(long v) throws IOException
long
值(由八个字节组成)写入输出流。
要写入的字节值按照显示的顺序是:
(byte)(0xff & (v >> 56)) (byte)(0xff & (v >> 48)) (byte)(0xff & (v >> 40)) (byte)(0xff & (v >> 32)) (byte)(0xff & (v >> 24)) (byte)(0xff & (v >> 16)) (byte)(0xff & (v >> 8)) (byte)(0xff & v)
用这种方法写入的字节可以由读取readLong
接口的方法DataInput
,然后将返回一个long
等于v
。
v
-
long
值。
IOException
- 如果发生I / O错误。
void writeFloat(float v) throws IOException
float
值写入输出流,该值由四个字节组成。
它这样做是因为,如果它首先将这个float
值到int
在完全相同的方式Float.floatToIntBits
方法,然后再写入int
在完全相同的方式值writeInt
方法。
用这种方法写入的字节可以由读取readFloat
接口的方法DataInput
,然后将返回一个float
等于v
。
v
-
float
值。
IOException
- 如果发生I / O错误。
void writeDouble(double v) throws IOException
double
值(由8个字节组成)写入输出流。
它这样做是因为,如果它首先将这个double
值到long
在完全相同的方式Double.doubleToLongBits
方法,然后再写入long
在完全相同的方式值writeLong
方法。
用这种方法写入的字节可以由读取readDouble
接口的方法DataInput
,然后将返回一个double
等于v
。
v
- 要写入的
double
值。
IOException
- 如果发生I / O错误。
void writeBytes(String s) throws IOException
s
,为了拍摄,一个字节写入到输出流。
如果s
是null
,则抛出一个NullPointerException
。
如果s.length
为零,则不会写入任何字节。 否则,首先写入字符s[0]
,然后写入s[1]
,等等; 写最后一个字符是s[s.length-1]
。 对于每个字符,写入一个字节,低字节,按照writeByte
方法的方式。 字符串中每个字符的高8位被忽略。
s
- 要写入的字节串。
IOException
- 如果发生I / O错误。
void writeChars(String s) throws IOException
s
,到输出流中,为了,每个字符使用两个字节。
如果s
是null
,则抛出一个NullPointerException
。
如果s.length
为零,则不会写任何字符。
否则,首先写入字符s[0]
,然后写入s[1]
,等等;
写最后一个字符是s[s.length-1]
。
对于每个字符,两个字节实际上是以writeChar
方式的方式写入高位字节。
s
- 要写入的字符串值。
IOException
- 如果发生I / O错误。
void writeUTF(String s) throws IOException
s
。
如果s
是null
,则抛出一个NullPointerException
。
字符串s
中的每个字符根据字符的值s
为一个,两个或三个字节的组。
如果一个字符c
在\u0001
到\u007f
,它由一个字节表示:
(byte)c
如果一个字符c
是\u0000
或者在\u0080
到\u07ff
的范围内,那么它由两个字节表示,按照显示的顺序写:
(byte)(0xc0 | (0x1f & (c >> 6))) (byte)(0x80 | (0x3f & c))
如果字符c
在\u0800
到uffff
,那么它将由三个字节表示,按照显示的顺序写入:
(byte)(0xe0 | (0x0f & (c >> 12))) (byte)(0x80 | (0x3f & (c >> 6))) (byte)(0x80 | (0x3f & c))
首先,以表示的所有字符所需的字节的总数s
被计算。 如果这个数字大于65535
,则抛出一个UTFDataFormatException
。 否则,这个长度以writeShort
方式的方式写入输出流; 之后,写入字符串s
中的每个字符的一个,两个或三个字节的表示。
用这种方法写入的字节可以由读取readUTF
接口的方法DataInput
,然后将返回一个String
等于s
。
s
- 要写入的字符串值。
IOException
- 如果发生I / O错误。