java.io java
類 ByteArrayOutputStream數組
java.lang.Objectapp
┗java.io.OutputStream函數
┗java.io.ByteArrayOutputStream編碼
全部已實現的接口: code
Closeable, Flushableorm
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 錯誤。