public interface DataOutput
| java.io.DataOutput |
| |
DataOutput接口提供将任何Java基本类型的数据转换为一系列字节并将这些字节写入二进制流。 还有一种将String转换为modified UTF-8格式并写入结果字节序列的工具。
对于该接口中写入字节的所有方法,通常情况下,如果由于某种原因无法写入字节, IOException抛出 IOException 。
也可以看看:
公共方法(Public methods) |
|
|---|---|
abstract void |
write(byte[] b) 将数组 |
abstract void |
write(byte[] b, int off, int len) 将数组 |
abstract void |
write(int b) 将参数 |
abstract void |
writeBoolean(boolean v) 将 |
abstract void |
writeByte(int v) 将参数 |
abstract void |
writeBytes(String s) 将一个字符串写入输出流。 |
abstract void |
writeChar(int v) 将包含两个字节的 |
abstract void |
writeChars(String s) 将字符串 |
abstract void |
writeDouble(double v) 将包含8个字节的 |
abstract void |
writeFloat(float v) 将一个由四个字节组成的 |
abstract void |
writeInt(int v) 将包含四个字节的 |
abstract void |
writeLong(long v) 将包含8个字节的 |
abstract void |
writeShort(int v) 将两个字节写入输出流以表示参数的值。 |
abstract void |
writeUTF(String s) 将两个字节的长度信息写入输出流,后面跟随字符串 |
void write (byte[] b)
将数组b所有字节写入输出流。 如果b是null ,则引发NullPointerException 。 如果b.length为零,则不写入字节。 否则,首先写入字节b[0] ,然后写入b[1] ,依此类推; 写入的最后一个字节是b[b.length-1] 。
| 参数(Parameters) | |
|---|---|
b |
byte: the data. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void write (byte[] b,
int off,
int len)
将数组b len字节b写入输出流。 如果b是null ,则引发NullPointerException 。 如果off为负数,或者len为负数,或者off+len大于数组b的长度,则会抛出IndexOutOfBoundsException 。 如果len为零,则不写入字节。 否则,首先写入字节b[off] ,然后写入b[off+1] ,依此类推; 写入的最后一个字节是b[off+len-1] 。
| 参数(Parameters) | |
|---|---|
b |
byte: the data. |
off |
int: the start offset in the data. |
len |
int: the number of bytes to write. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void write (int b)
将参数b的8个低位写入输出流。 忽略b的24个高位。
| 参数(Parameters) | |
|---|---|
b |
int: the byte to be written. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void writeBoolean (boolean v)
将boolean值写入此输出流。 如果参数v是true ,则写入值(byte)1 ; 如果v是false ,则写入值(byte)0 。 通过此方法写入的字节可以由读取readBoolean接口的方法DataInput ,然后将返回一个boolean等于v 。
| 参数(Parameters) | |
|---|---|
v |
boolean: the boolean to be written. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void writeByte (int v)
写入输出流参数v的八个v 。 忽略了v的24个高位。 (这意味着writeByte不完全一样的东西作为write为整数参数。)此方法写入的字节可以由读取readByte接口的方法DataInput ,然后将返回一个byte等于(byte)v 。
| 参数(Parameters) | |
|---|---|
v |
int: the byte value to be written. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void writeBytes (String s)
将一个字符串写入输出流。 对于字符串s中的每个字符,按顺序排列,将一个字节写入输出流。 如果s是null ,则引发NullPointerException 。
如果s.length为零,则不写入字节。 否则,首先写入字符s[0] ,然后写入s[1] ,依此类推; 最后写的字符是s[s.length-1] 。 对于每个字符,写入一个字节,即低位字节,方法与writeByte方法完全相同。 字符串中每个字符的高8位被忽略。
| 参数(Parameters) | |
|---|---|
s |
String: the string of bytes to be written. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void writeChar (int v)
将包含两个字节的char值写入输出流。 按照显示的顺序写入的字节值是:
(byte)(0xff & (v >> 8))
(byte)(0xff & v)
用这种方法写入的字节可以由读取 readChar接口的方法 DataInput ,然后将返回一个 char等于 (char)v 。
| 参数(Parameters) | |
|---|---|
v |
int: the char value to be written. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void writeChars (String s)
将字符串s中的每个字符写入输出流,顺序为每个字符两个字节。 如果s是null ,则引发NullPointerException 。 如果s.length为零,则不写入字符。 否则,首先写入字符s[0] ,然后写入s[1] ,依此类推; 最后写的字符是s[s.length-1] 。 对于每个字符,实际上写入两个字节,首先是高位字节,其方式与writeChar方法完全相同。
| 参数(Parameters) | |
|---|---|
s |
String: the string value to be written. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void writeDouble (double v)
将包含8个字节的double值写入输出流。 它这样做是因为,如果它首先将这个double值到long在完全相同的方式Double.doubleToLongBits方法,然后再写入long在完全相同的方式值writeLong方法。 用这种方法写入的字节可以由读取readDouble接口的方法DataInput ,然后将返回一个double等于v 。
| 参数(Parameters) | |
|---|---|
v |
double: the double value to be written. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void writeFloat (float v)
将包含四个字节的float值写入输出流。 它这样做是因为,如果它首先将这个float值到int在完全相同的方式Float.floatToIntBits方法,然后再写入int在完全相同的方式值writeInt方法。 用这种方法写入的字节可以由读取readFloat接口的方法DataInput ,然后将返回一个float等于v 。
| 参数(Parameters) | |
|---|---|
v |
float: the float value to be written. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void writeInt (int v)
将一个由四个字节组成的int值写入输出流。 按照显示的顺序写入的字节值是:
(byte)(0xff & (v >> 24))
(byte)(0xff & (v >> 16))
(byte)(0xff & (v >> 8))
(byte)(0xff & v)
用这种方法写入的字节可以由读取 readInt接口的方法 DataInput ,然后将返回一个 int等于 v 。
| 参数(Parameters) | |
|---|---|
v |
int: the int value to be written. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void writeLong (long v)
将包含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)
用这种方法写入的字节可以由读取 readLong接口的方法 DataInput ,然后将返回一个 long等于 v 。
| 参数(Parameters) | |
|---|---|
v |
long: the long value to be written. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void writeShort (int v)
将两个字节写入输出流以表示参数的值。 按照显示的顺序写入的字节值是:
(byte)(0xff & (v >> 8))
(byte)(0xff & v)
用这种方法写入的字节可以由读取 readShort接口的方法 DataInput ,然后将返回一个 short等于 (short)v 。
| 参数(Parameters) | |
|---|---|
v |
int: the short value to be written. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |
void writeUTF (String s)
将两个字节的长度信息写入输出流,后面跟随字符串s中每个字符的modified UTF-8表示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 。
| 参数(Parameters) | |
|---|---|
s |
String: the string value to be written. |
| 抛出异常(Throws) | |
|---|---|
IOException |
if an I/O error occurs. |