JavaTM 2 Platform
Standard Ed. 6

java.io
類別 ByteArrayOutputStream

java.lang.Object
  繼承者 java.io.OutputStream
      繼承者 java.io.ByteArrayOutputStream
所有已實作的介面:
Closeable, Flushable

public class ByteArrayOutputStream
extends OutputStream

此類別實作了一個輸出串流,其中的資料被寫入一個 byte 陣列。緩衝區會隨著資料的不斷寫入而自動增長。可使用 toByteArray()toString() 獲取資料。

關閉 ByteArrayOutputStream 無效。此類別中的方法在關閉此串流後仍可被調用,而不會產生任何 IOException

從以下版本開始:
JDK1.0

欄位摘要
protected  byte[] buf
          存儲資料的緩衝區。
protected  int count
          緩衝區中的有效位元組數。
 
建構子摘要
ByteArrayOutputStream()
          創建一個新的 byte 陣列輸出串流。
ByteArrayOutputStream(int size)
          創建一個新的 byte 陣列輸出串流,它具有指定大小的緩衝區容量(以位元組為單位)。
 
方法摘要
 void close()
          關閉 ByteArrayOutputStream 無效。
 void reset()
          將此 byte 陣列輸出串流的 count 欄位重置為零,從而丟棄輸出串流中目前已累積的所有輸出。
 int size()
          返回緩衝區的當前大小。
 byte[] toByteArray()
          創建一個新分派的 byte 陣列。
 String toString()
          使用平臺預設的字元集,通過解碼位元組將緩衝區內容轉換為字元串。
 String toString(int hibyte)
          已過時。 此方法無法將位元組正確轉換為字元。從 JDK 1.1 開始,完成該轉換的首選方法是通過 toString(String enc) 方法(使用一個編碼名稱參數),或 toString() 方法(使用平臺的預設字元編碼)。
 String toString(String charsetName)
          使用指定的 charsetName,通過解碼位元組將緩衝區內容轉換為字元串。
 void write(byte[] b, int off, int len)
          將指定 byte 陣列中從偏移量 off 開始的 len 個位元組寫入此 byte 陣列輸出串流。
 void write(int b)
          將指定的位元組寫入此 byte 陣列輸出串流。
 void writeTo(OutputStream out)
          將此 byte 陣列輸出串流的全部內容寫入到指定的輸出串流參數中,這與使用 out.write(buf, 0, count) 調用該輸出串流的 write 方法效果一樣。
 
從類別 java.io.OutputStream 繼承的方法
flush, write
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

buf

protected byte[] buf
存儲資料的緩衝區。


count

protected int count
緩衝區中的有效位元組數。

建構子詳細資訊

ByteArrayOutputStream

public ByteArrayOutputStream()
創建一個新的 byte 陣列輸出串流。緩衝區的容量最初是 32 位元組,如有必要可增加其大小。


ByteArrayOutputStream

public ByteArrayOutputStream(int size)
創建一個新的 byte 陣列輸出串流,它具有指定大小的緩衝區容量(以位元組為單位)。

參數:
size - 初始大小。
拋出:
IllegalArgumentException - 如果 size 為負。
方法詳細資訊

write

public void write(int b)
將指定的位元組寫入此 byte 陣列輸出串流。

指定者:
類別 OutputStream 中的 write
參數:
b - 要寫入的位元組。

write

public void write(byte[] b,
                  int off,
                  int len)
將指定 byte 陣列中從偏移量 off 開始的 len 個位元組寫入此 byte 陣列輸出串流。

覆寫:
類別 OutputStream 中的 write
參數:
b - 資料。
off - 資料的初始偏移量。
len - 要寫入的位元組數。

writeTo

public void writeTo(OutputStream out)
             throws IOException
將此 byte 陣列輸出串流的全部內容寫入到指定的輸出串流參數中,這與使用 out.write(buf, 0, count) 調用該輸出串流的 write 方法效果一樣。

參數:
out - 要寫入資料的輸出串流。
拋出:
IOException - 如果發生 I/O 錯誤。

reset

public void reset()
將此 byte 陣列輸出串流的 count 欄位重置為零,從而丟棄輸出串流中目前已累積的所有輸出。通過重新使用已分派的緩衝區空間,可以再次使用該輸出串流。

另請參見:
ByteArrayInputStream.count

toByteArray

public byte[] toByteArray()
創建一個新分派的 byte 陣列。其大小是此輸出串流的當前大小,並且緩衝區的有效內容已複製到該陣列中。

返回:
以 byte 陣列的形式返回此輸出串流的當前內容。
另請參見:
size()

size

public int size()
返回緩衝區的當前大小。

返回:
count 欄位的值,這是此輸出串流中有效位元組的數目。
另請參見:
count

toString

public String toString()
使用平臺預設的字元集,通過解碼位元組將緩衝區內容轉換為字元串。新 String 的長度是字元集的函數,因此可能不等於緩衝區的大小。

此方法總是使用平臺預設字元集的預設替代字元串替代錯誤輸入 (malformed-input) 和不可映射字元 (unmappable-character) 序列。如果需要對解碼過程進行更多控制,則應該使用 CharsetDecoder 類別。

覆寫:
類別 Object 中的 toString
返回:
從緩衝區內容解碼的字元串。
從以下版本開始:
JDK1.1

toString

public String toString(String charsetName)
                throws UnsupportedEncodingException
使用指定的 charsetName,通過解碼位元組將緩衝區內容轉換為字元串。新 String 的長度是字元集的函數,因此可能不等於緩衝區的大小。

此方法總是使用平臺預設字元集的預設替代字元串替代錯誤輸入 (malformed-input) 和不可映射字元 (unmappable-character) 序列。如果需要對解碼過程進行更多控制,則應該使用 CharsetDecoder 類別。

參數:
charsetName - charset 支持的名稱
返回:
從緩衝區內容解碼的字元串。
拋出:
UnsupportedEncodingException - 如果不支持指定的字元集。
從以下版本開始:
JDK1.1

toString

@Deprecated
public String toString(int hibyte)
已過時。 此方法無法將位元組正確轉換為字元。從 JDK 1.1 開始,完成該轉換的首選方法是通過 toString(String enc) 方法(使用一個編碼名稱參數),或 toString() 方法(使用平臺的預設字元編碼)。

創建一個新分派的字元串。其大小是該輸出串流的當前大小,並且緩衝區的有效內容已複製到其中。得到的字元串中的每個字元 c 都根據 byte 陣列中的相應元素 b 建構,如下所示:
     c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))
 

參數:
hibyte - 每個結果 Unicode 字元的高次位元組。
返回:
以字元串的形式返回輸出串流的當前內容。
另請參見:
size(), toString(String), toString()

close

public void close()
           throws IOException
關閉 ByteArrayOutputStream 無效。此類別中的方法在關閉此串流後仍可被調用,而不會產生任何 IOException 時。

指定者:
介面 Closeable 中的 close
覆寫:
類別 OutputStream 中的 close
拋出:
IOException - 如果發生 I/O 錯誤。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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