- 所有已知的子接口:
-
ImageOutputStream,ObjectOutput
- 所有已知的实现类:
-
DataOutputStream,FileCacheImageOutputStream,FileImageOutputStream,ImageOutputStreamImpl,MemoryCacheImageOutputStream,ObjectOutputStream,RandomAccessFile
public interface DataOutput
DataOutput接口提供了将Java原始类型中的任何数据转换为一系列字节并将这些字节写入二进制流的功能。还提供了将String转换为修改后的UTF-8格式并写入生成的字节序列的功能。
对于此接口中写入字节的所有方法,通常情况下,如果由于任何原因无法写入字节,则会抛出IOException。
- 自:
- 1.0
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionvoidwrite(byte[] b) 将数组b中的所有字节写入输出流。voidwrite(byte[] b, int off, int len) 按顺序从数组b中写入len字节到输出流。voidwrite(int b) 将参数b的八个低位写入输出流。voidwriteBoolean(boolean v) 将boolean值写入此输出流。voidwriteByte(int v) 将参数v的八个低位写入输出流。voidwriteBytes(String s) 将字符串写入输出流。voidwriteChar(int v) 将由两个字节组成的char值写入输出流。voidwriteChars(String s) 将字符串s中的每个字符按顺序每个字符两个字节写入输出流。voidwriteDouble(double v) 将由八个字节组成的double值写入输出流。voidwriteFloat(float v) 将由四个字节组成的float值写入输出流。voidwriteInt(int v) 将由四个字节组成的int值写入输出流。voidwriteLong(long v) 将由八个字节组成的long值写入输出流。voidwriteShort(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错误。
-