java.io
類 ByteArrayOutputStream
java.lang.Object
┗java.io.OutputStream
┗java.io.ByteArrayOutputStream
所有已實作的接口:
Closeable, Flushable
public class ByteArrayOutputStreamextends OutputStream
此類實作了一個輸出流,其中的資料被寫入一個 byte 數組。緩沖區會随着資料的不斷寫入而自動增長。可使用 toByteArray() 和 toString() 擷取資料。
關閉 ByteArrayOutputStream 無效。此類中的方法在關閉此流後仍可被調用,而不會産生任何 IOException。
字段摘要
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(int b)
将指定的位元組寫入此 byte 數組輸出流。
void write(byte[] b, int off, int len)
将指定 byte 數組中從偏移量 off 開始的 len 個位元組寫入此 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 字段重置為零,進而丢棄輸出流中目前已累積的所有輸出。通過重新使用已配置設定的緩沖區空間,可以再次使用該輸出流。
toByteArray
public byte[] toByteArray()
建立一個新配置設定的 byte 數組。其大小是此輸出流的目前大小,并且緩沖區的有效内容已複制到該數組中。
傳回:
以 byte 數組的形式傳回此輸出流的目前内容。
size
public int size()
傳回緩沖區的目前大小。
傳回:
count 字段的值,這是此輸出流中有效位元組的數目。
toString
public String toString()
使用平台預設的字元集,通過解碼位元組将緩沖區内容轉換為字元串。新 String 的長度是字元集的函數,是以可能不等于緩沖區的大小。
此方法總是使用平台預設字元集的預設替代字元串替代錯誤輸入 (malformed-input) 和不可映射字元 (unmappable-character) 序列。如果需要對解碼過程進行更多控制,則應該使用 CharsetDecoder 類。
覆寫:
類 Object 中的 toString
傳回:
從緩沖區内容解碼的字元串。
toString
public String toString(String charsetName) throws UnsupportedEncodingException
使用指定的 charsetName,通過解碼位元組将緩沖區内容轉換為字元串。新 String 的長度是字元集的函數,是以可能不等于緩沖區的大小。
此方法總是使用平台預設字元集的預設替代字元串替代錯誤輸入 (malformed-input) 和不可映射字元 (unmappable-character) 序列。如果需要對解碼過程進行更多控制,則應該使用 CharsetDecoder 類。
參數:
charsetName - charset 支援的名稱
傳回:
從緩沖區内容解碼的字元串。
抛出:
UnsupportedEncodingException - 如果不支援指定的字元集。
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 字元的高次位元組。
傳回:
以字元串的形式傳回輸出流的目前内容。
close
public void close() throws IOException
關閉 ByteArrayOutputStream 無效。此類中的方法在關閉此流後仍可被調用,而不會産生任何 IOException 時。
指定者:
接口 Closeable 中的 close
覆寫:
類 OutputStream 中的 close
抛出:
IOException - 如果發生 I/O 錯誤。