JavaTM 2 Platform
Standard Ed. 6

java.io
介面 DataOutput

所有已知子介面:
ImageOutputStream, ObjectOutput
所有已知實作類別:
DataOutputStream, FileCacheImageOutputStream, FileImageOutputStream, ImageOutputStreamImpl, MemoryCacheImageOutputStream, ObjectOutputStream, RandomAccessFile

public interface DataOutput

DataOutput 介面用於將資料從任意 Java 基本型別轉換為一系列位元組,並將這些位元組寫入二進制串流。同時還提供了一個將 String 轉換成 UTF-8 修改版格式並寫入所得到的系列位元組的工具。

對於此介面中寫入位元組的所有方法,如果由於某種原因無法寫入某個位元組,則拋出 IOException

從以下版本開始:
JDK1.0
另請參見:
DataInput, DataOutputStream

方法摘要
 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)
          將一個 double 值寫入輸出串流,該值由八個位元組組成。
 void writeFloat(float v)
          將一個 float 值寫入輸出串流,該值由四個位元組組成。
 void writeInt(int v)
          將一個 int 值寫入輸出串流,該值由四個位元組組成。
 void writeLong(long v)
          將一個 long 值寫入輸出串流,該值由八個位元組組成。
 void writeShort(int v)
          將兩個位元組寫入輸出串流,用它們表示參數值。
 void writeUTF(String s)
          將表示長度資訊的兩個位元組寫入輸出串流,後跟字元串 s 中每個字元的 UTF-8 修改版表示形式。
 

方法詳細資訊

write

void write(int b)
           throws IOException
將參數 b 的八個低位寫入輸出串流。忽略 b 的 24 個高位。

參數:
b - 要寫入的位元組。
拋出:
IOException - 如果發生 I/O 錯誤。

write

void write(byte[] b)
           throws IOException
將陣列 b 中的所有位元組寫入輸出串流。如果 bnull,則拋出 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
將陣列 b 中的 len 個位元組按順序寫入輸出串流。如果 bnull,則拋出 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 值寫入輸出串流。如果參數 vtrue,則寫入值 (byte)1;如果 vfalse,則寫入值 (byte)0。此方法寫入的位元組可由 DataInput 介面的 readBoolean 方法讀取,然後該方法將返回一個等於 vboolean 值。

參數:
v - 要寫入的 boolean 值。
拋出:
IOException - 如果發生 I/O 錯誤。

writeByte

void writeByte(int v)
               throws IOException
將參數 v 的八個低位寫入輸出串流。忽略 v 的 24 個高位。(這意味著 writeByte 的作用與使用整數做參數的 write 完全相同。)此方法寫入的位元組可由 DataInput 介面的 readByte 方法讀取,然後該方法將返回一個等於 (byte)vbyte 值。

參數:
v - 要寫入的位元組值。
拋出:
IOException - 如果發生 I/O 錯誤。

writeShort

void writeShort(int v)
                throws IOException
將兩個位元組寫入輸出串流,用它們表示參數值。要寫入的位元組值(按順序顯示)是:


 (byte)(0xff & (v >> 8))
 (byte)(0xff & v)
  

此方法寫入的位元組可由 DataInput 介面的 readShort 方法讀取,然後該方法將返回一個等於 (short)vshort 值。

參數:
v - 要寫入的 short 值。
拋出:
IOException - 如果發生 I/O 錯誤。

writeChar

void writeChar(int v)
               throws IOException
將一個 char 值寫入輸出串流,該值由兩個位元組組成。要寫入的位元組值(按順序顯示)是:


 (byte)(0xff & (v >> 8))
 (byte)(0xff & v)
 

此方法寫入的位元組可由 DataInput 介面的 readChar 方法讀取,然後該方法將返回一個等於 (char)vchar 值。

參數:
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 方法讀取,然後該方法將返回一個等於 vint 值。

參數:
v - 要寫入的 int 值。
拋出:
IOException - 如果發生 I/O 錯誤。

writeLong

void writeLong(long v)
               throws IOException
將一個 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 方法讀取,然後該方法將返回一個等於 vlong 值。

參數:
v - 要寫入的 long 值。
拋出:
IOException - 如果發生 I/O 錯誤。

writeFloat

void writeFloat(float v)
                throws IOException
將一個 float 值寫入輸出串流,該值由四個位元組組成。實作這一點的方式是:首先使用與 Float.floatToIntBits 方法完全相同的方式將此 float 值轉換為一個 int 值,然後使用與 writeInt 方法完全相同的方式寫入該 int 值。此方法寫入的位元組可由 DataInput 介面的 readFloat 方法讀取,然後該方法將返回一個等於 vfloat 值。

參數:
v - 要寫入的 float 值。
拋出:
IOException - 如果發生 I/O 錯誤。

writeDouble

void writeDouble(double v)
                 throws IOException
將一個 double 值寫入輸出串流,該值由八個位元組組成。實作這一點的方式是:首先使用與 Double.doubleToLongBits 方法相同的方式將此 double 值轉換為一個 long 值,然後使用與 writeLong 方法完全相同的方式寫入該 long 值。此方法寫入的位元組可由 DataInput 介面的 readDouble 方法讀取,然後該方法將返回一個等於 vdouble 值。

參數:
v - 要寫入的 double 值。
拋出:
IOException - 如果發生 I/O 錯誤。

writeBytes

void writeBytes(String s)
                throws IOException
將一個字元串寫入輸出串流。字元串 s 中的每一個字元被依次寫入輸出串流,每個字元用一個位元組表示。如果 snull,則拋出 NullPointerException

如果 s.length 為零,則不寫入位元組。否則,首先寫入字元 s[0],然後寫入字元 s[1],依此類別推;最後一個寫入字元是 s[s.length-1]。使用與 writeByte 方法完全相同的方法為每個字元寫入一個低位位元組。忽略字元串中每個字元的八個高位。

參數:
s - 要寫入的位元組字元串。
拋出:
IOException - 如果發生 I/O 錯誤。

writeChars

void writeChars(String s)
                throws IOException
將字元串 s 中的所有字元按順序寫入輸出串流,每個字元用兩個位元組表示。如果 snull,則拋出 NullPointerException。如果 s.length 為零,則不寫入字元。否則,首先寫入字元 s[0],然後寫入字元 s[1],依此類別推;最後一個寫入字元是 s[s.length-1]。使用與 writeChar 方法完全相同的方法為每個字元實際寫入兩個位元組,先使用高位位元組。

參數:
s - 要寫入的字元串值。
拋出:
IOException - 如果發生 I/O 錯誤。

writeUTF

void writeUTF(String s)
              throws IOException
將表示長度資訊的兩個位元組寫入輸出串流,後跟字元串 s 中每個字元的 UTF-8 修改版表示形式。如果 snull,則拋出 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 中所有字元的 1 位元組、2 位元組或 3 位元組表示形式。

此方法寫入的位元組可由 DataInput 介面的 readUTF 方法讀取,然後該方法將返回一個等於 sString 值。

參數:
s - 要寫入的字元串值。
拋出:
IOException - 如果發生 I/O 錯誤。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only