- 所有已知的子接口:
-
ImageOutputStream
,ObjectOutput
- 所有已知的实现类:
-
DataOutputStream
,FileCacheImageOutputStream
,FileImageOutputStream
,ImageOutputStreamImpl
,MemoryCacheImageOutputStream
,ObjectOutputStream
,RandomAccessFile
public interface DataOutput
DataOutput
接口提供了将Java原始类型中的任何数据转换为一系列字节并将这些字节写入二进制流的功能。还提供了将String
转换为修改后的UTF-8格式并写入生成的字节序列的功能。
对于此接口中写入字节的所有方法,通常情况下,如果由于任何原因无法写入字节,则会抛出IOException
。
- 自:
- 1.0
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
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
值写入输出流。void
writeFloat
(float v) 将由四个字节组成的float
值写入输出流。void
writeInt
(int v) 将由四个字节组成的int
值写入输出流。void
writeLong
(long v) 将由八个字节组成的long
值写入输出流。void
writeShort
(int v) 写入两个字节到输出流以表示参数的值。void
写入两个字节的长度信息到输出流,然后是字符串s
中每个字符的修改后的UTF-8表示。
-
Method Details
-
write
将参数b
的八个低位写入输出流。忽略b
的24个高位。- 参数:
-
b
- 要写入的字节。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
write
将数组b
中的所有字节写入输出流。如果b
为null
,则抛出NullPointerException
。如果b.length
为零,则不写入任何字节。否则,首先写入字节b[0]
,然后是b[1]
,依此类推;最后一个写入的字节是b[b.length-1]
。- 参数:
-
b
- 数据。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
write
按顺序从数组b
中写入len
字节到输出流。如果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错误。 -
IndexOutOfBoundsException
- 如果off
为负数,len
为负数,或者len
大于b.length - off
-
writeBoolean
将boolean
值写入此输出流。如果参数v
为true
,则写入值(byte)1
;如果v
为false
,则写入值(byte)0
。此方法写入的字节可以由接口DataInput
的readBoolean
方法读取,该方法将返回等于v
的boolean
。- 参数:
-
v
- 要写入的布尔值。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
writeByte
将参数v
的八个低位写入输出流。忽略v
的24个高位。(这意味着writeByte
对于整数参数与write
完全相同。)此方法写入的字节可以由接口DataInput
的readByte
方法读取,该方法将返回等于(byte)v
的byte
。- 参数:
-
v
- 要写入的字节值。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
writeShort
写入两个字节到输出流以表示参数的值。按照显示的顺序写入的字节值为:(byte)(0xff & (v >> 8)) (byte)(0xff & v)
此方法写入的字节可以由接口
DataInput
的readShort
方法读取,该方法将返回等于(short)v
的short
。- 参数:
-
v
- 要写入的short
值。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
writeChar
将由两个字节组成的char
值写入输出流。按照显示的顺序写入的字节值为:(byte)(0xff & (v >> 8)) (byte)(0xff & v)
此方法写入的字节可以由接口
DataInput
的readChar
方法读取,该方法将返回等于(char)v
的char
。- 参数:
-
v
- 要写入的char
值。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
writeInt
将由四个字节组成的int
值写入输出流。按照显示的顺序写入的字节值为:(byte)(0xff & (v >> 24)) (byte)(0xff & (v >> 16)) (byte)(0xff & (v >> 8)) (byte)(0xff & v)
此方法写入的字节可以由接口
DataInput
的readInt
方法读取,该方法将返回等于v
的int
。- 参数:
-
v
- 要写入的int
值。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
writeLong
将由八个字节组成的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)
此方法写入的字节可以由接口
DataInput
的readLong
方法读取,该方法将返回等于v
的long
。- 参数:
-
v
- 要写入的long
值。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
writeFloat
将由四个字节组成的float
值写入输出流。它会将此float
值按照Float.floatToIntBits
方法的方式转换为int
,然后以writeInt
方法的方式写入int
值。此方法写入的字节可以由接口DataInput
的readFloat
方法读取,该方法将返回等于v
的float
。- 参数:
-
v
- 要写入的float
值。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
writeDouble
将由八个字节组成的double
值写入输出流。它会将这个double
值转换为long
值,方法与Double.doubleToLongBits
方法完全相同,然后以writeLong
方法的方式写入long
值。此方法写入的字节可以被接口DataInput
的readDouble
方法读取,该方法将返回一个等于v
的double
值。- 参数:
-
v
- 要写入的double
值。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
writeBytes
将字符串写入输出流。对于字符串s
中的每个字符,按顺序写入一个字节到输出流。如果s
为null
,则会抛出NullPointerException
。如果
s.length
为零,则不会写入任何字节。否则,首先写入字符s[0]
,然后是s[1]
,依此类推;最后一个写入的字符是s[s.length-1]
。对于每个字符,将写入一个字节,即低位字节,方法与writeByte
方法完全相同。字符串中每个字符的高位八位将被忽略。- 参数:
-
s
- 要写入的字节字符串。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
writeChars
将字符串s
中的每个字符按顺序写入输出流,每个字符两个字节。如果s
为null
,则会抛出NullPointerException
。如果s.length
为零,则不会写入任何字符。否则,首先写入字符s[0]
,然后是s[1]
,依此类推;最后一个写入的字符是s[s.length-1]
。对于每个字符,实际上会写入两个字节,高位字节优先,方法与writeChar
方法完全相同。- 参数:
-
s
- 要写入的字符串值。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
writeUTF
向输出流写入两个字节的长度信息,然后是字符串s
中每个字符的修改后的UTF-8表示。如果s
为null
,则会抛出NullPointerException
。字符串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
中每个字符的一个、两个或三个字节的表示。此方法写入的字节可以被接口
DataInput
的readUTF
方法读取,该方法将返回一个等于s
的String
。- 参数:
-
s
- 要写入的字符串值。 - 抛出:
-
IOException
- 如果发生I/O错误。
-