-
- All Known Subinterfaces:
-
ImageOutputStream
,JNLPRandomAccessFile
,ObjectOutput
- 所有已知实现类:
-
DataOutputStream
,FileCacheImageOutputStream
,FileImageOutputStream
,ImageOutputStreamImpl
,MemoryCacheImageOutputStream
,ObjectOutputStream
,RandomAccessFile
public interface DataOutput
DataOutput
接口提供将数据从任何Java基本类型转换为一系列字节,并将这些字节写入二进制流。 还有一个将String
转换为modified UTF-8格式并编写结果字节系列的功能。对于这个接口中写入字节的所有方法,一般来说,如果一个字节不能由于任何原因写入,
IOException
抛出一个IOException
。- 从以下版本开始:
- 1.0
- 另请参见:
-
DataInput
,DataOutputStream
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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)
向输出流写入一个由8个字节组成的double
值。void
writeFloat(float v)
向输出流写入由四个字节组成的float
值。void
writeInt(int v)
向输出流写入一个由四个字节组成的int
值。void
writeLong(long v)
向输出流写入一个由8个字节组成的long
值。void
writeShort(int v)
将两个字节写入输出流以表示参数的值。void
writeUTF(String s)
将两个字节的长度信息写入输出流,后跟字符串s
中每个字符的 modified UTF-8表示。
-
-
-
方法详细信息
-
write
void write(int b) throws IOException
向输出流写入参数b
的八个低位。b
的24位b
被忽略。- 参数
-
b
- 要写入的字节。 - 异常
-
IOException
- 如果发生I / O错误。
-
write
void write(byte[] b) throws IOException
将输出流写入阵列b
所有字节。 如果b
是null
,则抛出一个NullPointerException
。 如果b.length
为零,则不会写入任何字节。 否则,首先写入字节b[0]
,然后写入b[1]
,等等; 写入的最后一个字节是b[b.length-1]
。- 参数
-
b
- 数据。 - 异常
-
IOException
- 如果发生I / O错误。
-
write
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错误。
-
writeBoolean
void writeBoolean(boolean v) throws IOException
向此输出流写入一个boolean
值。 如果参数v
为true
,则写入值(byte)1
; 如果v
为false
,则写入值(byte)0
。 通过此方法写入的字节可以由读取readBoolean
接口的方法DataInput
,然后将返回一个boolean
等于v
。- 参数
-
v
- 要写入的布尔值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeByte
void writeByte(int v) throws IOException
向输出流写入参数v
的八个低位位。v
的24位v
被忽略。 (这意味着writeByte
不完全一样的东西作为write
为整数参数。)此方法写入的字节可以由读取readByte
接口的方法DataInput
,然后将返回一个byte
等于(byte)v
。- 参数
-
v
- 要写入的字节值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeShort
void writeShort(int v) throws IOException
将两个字节写入输出流以表示参数的值。 要写入的字节值按照显示的顺序是:(byte)(0xff & (v >> 8)) (byte)(0xff & v)
由该方法写入的字节可以由接口
DataInput
的readShort
方法读取,然后short
将返回short
等于(short)v
。- 参数
-
v
-short
值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeChar
void writeChar(int v) throws IOException
向输出流写入一个由两个字节组成的char
值。 要写入的字节值按照显示的顺序是:(byte)(0xff & (v >> 8)) (byte)(0xff & v)
由该方法写入的字节可以通过接口
DataInput
的readChar
方法读取,然后char
将返回等于(char)v
。- 参数
-
v
-char
值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeInt
void writeInt(int v) throws IOException
向输出流写入由四个字节组成的int
值。 要写入的字节值按照显示的顺序是:(byte)(0xff & (v >> 24)) (byte)(0xff & (v >> 16)) (byte)(0xff & (v >> 8)) (byte)(0xff & v)
由该方法写入的字节可以通过接口
DataInput
的readInt
方法读取,然后将返回int
等于v
。- 参数
-
v
-int
值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeLong
void writeLong(long v) throws IOException
向输出流写入一个由8个字节组成的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
方法读取,接着long
返回一个等于v
。- 参数
-
v
-long
值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeFloat
void writeFloat(float v) throws IOException
向输出流写入由四个字节组成的float
值。 它这样做是因为,如果它首先将这个float
值到int
在完全相同的方式Float.floatToIntBits
方法,然后再写入int
在完全相同的方式值writeInt
方法。 由该方法写入的字节可以由接口DataInput
的readFloat
方法读取,readFloat
DataInput
将返回float
等于v
。- 参数
-
v
-float
值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeDouble
void writeDouble(double v) throws IOException
向输出流写入一个由8个字节组成的double
值。 它这样做是因为,如果它首先将这个double
值到long
在完全相同的方式Double.doubleToLongBits
方法,然后再写入long
在完全相同的方式值writeLong
方法。 由该方法写入的字节可以由接口DataInput
的readDouble
方法读取,然后readDouble
方法将返回double
等于v
。- 参数
-
v
-double
值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeBytes
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错误。
-
writeChars
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错误。
-
writeUTF
void writeUTF(String s) throws IOException
将两个字节的长度信息写入输出流,后跟字符串s
中每个字符的modified 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
方法读取,然后String
将返回一个String
等于s
。- 参数
-
s
- 要写入的字符串值。 - 异常
-
IOException
- 如果发生I / O错误。
-
-