-
- All Known Subinterfaces:
-
ImageOutputStream,JNLPRandomAccessFile,ObjectOutput
- 所有已知实现类:
-
DataOutputStream,FileCacheImageOutputStream,FileImageOutputStream,ImageOutputStreamImpl,MemoryCacheImageOutputStream,ObjectOutputStream,RandomAccessFile
public interface DataOutputDataOutput接口提供将数据从任何Java基本类型转换为一系列字节,并将这些字节写入二进制流。 还有一个将String转换为modified UTF-8格式并编写结果字节系列的功能。对于这个接口中写入字节的所有方法,一般来说,如果一个字节不能由于任何原因写入,
IOException抛出一个IOException。- 从以下版本开始:
- 1.0
- 另请参见:
-
DataInput,DataOutputStream
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 voidwrite(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)向输出流写入一个由8个字节组成的double值。voidwriteFloat(float v)向输出流写入由四个字节组成的float值。voidwriteInt(int v)向输出流写入一个由四个字节组成的int值。voidwriteLong(long v)向输出流写入一个由8个字节组成的long值。voidwriteShort(int v)将两个字节写入输出流以表示参数的值。voidwriteUTF(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方法读取,readFloatDataInput将返回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错误。
-
-