W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.io.OutputStream
|---|---java.io.ByteArrayOutputStream
public class ByteArrayOutputStream
extends OutputStream
該類實(shí)現(xiàn)了一個(gè)輸出流,其中的數(shù)據(jù)被寫入一個(gè)字節(jié)數(shù)組。當(dāng)數(shù)據(jù)被寫入時(shí),緩沖區(qū)會(huì)自動(dòng)增長。數(shù)據(jù)可以用toByteArray()和toString()來檢索。
關(guān)閉ByteArrayOutputStream沒有效果。這個(gè)類中的方法可以在流被關(guān)閉后被調(diào)用而不產(chǎn)生IOException。
Since:
JDK1.0
修飾符和類型 | 字段 | 描述 |
---|---|---|
protected byte[] | buf | 存儲(chǔ)數(shù)據(jù)的緩沖區(qū)。 |
protected int | count | 緩沖區(qū)內(nèi)的有效字節(jié)數(shù)。 |
構(gòu)造函數(shù) | 描述 |
---|---|
ByteArrayOutputStream() | 創(chuàng)建一個(gè)新的字節(jié)數(shù)組輸出流。 |
ByteArrayOutputStream(int size) | 創(chuàng)建一個(gè)新的字節(jié)數(shù)組輸出流,其緩沖區(qū)的容量為指定的字節(jié)數(shù)。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
void | close() | 關(guān)閉一個(gè)ByteArrayOutputStream沒有任何效果。 |
void | reset() | 將該字節(jié)數(shù)組輸出流的count字段重置為0,這樣,輸出流中當(dāng)前累積的所有輸出都被丟棄。 |
int | size() | 返回緩沖區(qū)的當(dāng)前大小。 |
byte[] | toByteArray() | 創(chuàng)建一個(gè)新分配的字節(jié)數(shù)組。 |
String | toString() | 將緩沖區(qū)的內(nèi)容轉(zhuǎn)換成字符串,使用平臺(tái)的默認(rèn)字符集對(duì)字節(jié)進(jìn)行解碼。 |
String | toString(int hibyte) | 棄用。這個(gè)方法不能正確地將字節(jié)轉(zhuǎn)換成字符。從JDK 1.1開始,首選的方法是通過toString(String enc)方法,它需要一個(gè)編碼名稱參數(shù),或者通過toString()方法,它使用平臺(tái)的默認(rèn)字符編碼。 |
String | toString(String charsetName) | 通過使用指定的字符集對(duì)字節(jié)進(jìn)行解碼,將緩沖區(qū)的內(nèi)容轉(zhuǎn)換為字符串。 |
void | write(byte[] b, int off, int len) | 從偏移量off處開始,將指定的字節(jié)數(shù)的len字節(jié)寫到這個(gè)字節(jié)數(shù)的輸出流中。 |
void | write(int b) | 將指定的字節(jié)寫入這個(gè)字節(jié)數(shù)組的輸出流中。 |
void | writeTo(OutputStream out) | 將此字節(jié)數(shù)組輸出流的全部內(nèi)容寫入指定的輸出流參數(shù),就像使用out.write(buf, 0, count)調(diào)用輸出流的寫入方法一樣。 |
從java.lang.Object類繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
從java.io.OutputStream類繼承的方法 |
---|
flush, write |
protected byte[] buf
存儲(chǔ)數(shù)據(jù)的緩沖區(qū)。
protected int count
緩沖區(qū)內(nèi)的有效字節(jié)數(shù)。
public ByteArrayOutputStream()
創(chuàng)建一個(gè)新的字節(jié)數(shù)組輸出流。緩沖區(qū)的容量最初為32字節(jié),但如果有必要,其大小會(huì)增加。
public ByteArrayOutputStream(int size)
創(chuàng)建一個(gè)新的字節(jié)數(shù)組輸出流,其緩沖區(qū)的容量為指定的字節(jié)數(shù)。
參數(shù)。
參數(shù)名稱 | 參數(shù)描述 |
---|---|
size | 初始尺寸。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果尺寸為負(fù)數(shù)。 |
public void write(int b)
將指定的字節(jié)寫入這個(gè)字節(jié)數(shù)組的輸出流中。
指定的是:
write in class OutputStream
參數(shù)。
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 要寫入的字節(jié)。 |
public void write(byte[] b, int off, int len)
從偏移量off開始,將指定字節(jié)數(shù)的len字節(jié)寫到這個(gè)字節(jié)數(shù)的輸出流中。
重寫:
write in class OutputStream
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 數(shù)據(jù)。 |
off | 數(shù)據(jù)中的起始偏移。 |
len | 要寫入的字節(jié)數(shù)。 |
public void writeTo(OutputStream out) throws IOException
將此字節(jié)數(shù)組輸出流的全部內(nèi)容寫入指定的輸出流參數(shù),就像使用out.write(buf, 0, count)調(diào)用輸出流的寫入方法一樣。
參數(shù)。
參數(shù)名稱 | 參數(shù)描述 |
---|---|
out | 要寫入數(shù)據(jù)的輸出流。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生I/O錯(cuò)誤。 |
public void reset()
將這個(gè)字節(jié)數(shù)組輸出流的count字段重置為0,這樣,輸出流中當(dāng)前積累的所有輸出都被丟棄了。該輸出流可以再次使用,重新使用已經(jīng)分配的緩沖空間。
public byte[] toByteArray()
創(chuàng)建一個(gè)新分配的字節(jié)數(shù)組。它的大小是這個(gè)輸出流的當(dāng)前大小,緩沖區(qū)的有效內(nèi)容已經(jīng)被復(fù)制到它里面。
返回。
這個(gè)輸出流的當(dāng)前內(nèi)容,作為一個(gè)字節(jié)數(shù)組。
public int size()
返回緩沖區(qū)的當(dāng)前大小。
返回:
count 字段的值,即此輸出流中的有效字節(jié)數(shù)。
public String toString()
使用平臺(tái)的默認(rèn)字符集將緩沖區(qū)的內(nèi)容轉(zhuǎn)換為字符串解碼字節(jié)。 新字符串的長度是字符集的函數(shù),因此可能不等于緩沖區(qū)的大小。
此方法始終使用平臺(tái)默認(rèn)字符集的默認(rèn)替換字符串替換格式錯(cuò)誤的輸入和不可映射的字符序列。 當(dāng)需要對(duì)解碼過程進(jìn)行更多控制時(shí),應(yīng)使用 CharsetDecoder 類。
覆蓋:
類 Object 中的 toString
返回:
從緩沖區(qū)內(nèi)容解碼的字符串。
Since:
JDK1.1
public String toString(String charsetName) throws UnsupportedEncodingException
通過使用命名字符集解碼字節(jié),將緩沖區(qū)的內(nèi)容轉(zhuǎn)換為字符串。 新字符串的長度是字符集的函數(shù),因此可能不等于字節(jié)數(shù)組的長度。
此方法始終使用此字符集的默認(rèn)替換字符串替換格式錯(cuò)誤的輸入和不可映射的字符序列。 當(dāng)需要對(duì)解碼過程進(jìn)行更多控制時(shí),應(yīng)使用 CharsetDecoder 類。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
charsetName | 支持的字符集的名稱 |
返回:
從緩沖區(qū)內(nèi)容解碼的字符串。
Throws:
Throw名稱 | Throw描述 |
---|---|
UnsupportedEncodingException | 如果不支持命名字符集 |
Since:
JDK1.1
@Deprecated public String toString(int hibyte)
已棄用。 此方法不能正確地將字節(jié)轉(zhuǎn)換為字符。 從 JDK 1.1 開始,執(zhí)行此操作的首選方法是通過 toString(String enc) 方法,該方法接受一個(gè) encoding-name 參數(shù),或 toString() 方法,該方法使用平臺(tái)的默認(rèn)字符編碼。
創(chuàng)建一個(gè)新分配的字符串。 它的大小是輸出流的當(dāng)前大小,并且緩沖區(qū)的有效內(nèi)容已被復(fù)制到其中。 結(jié)果字符串中的每個(gè)字符 c 都是從字節(jié)數(shù)組中的相應(yīng)元素 b 構(gòu)造的,這樣:
c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
hibyte | 每個(gè)生成的 Unicode 字符的高字節(jié)。 |
返回:
輸出流的當(dāng)前內(nèi)容,作為字符串。
public void close() throws IOException
關(guān)閉 ByteArrayOutputStream 無效。 可以在流關(guān)閉后調(diào)用此類中的方法,而不會(huì)生成 IOException。
指定者:
在接口 AutoCloseable 中關(guān)閉
指定者:
在接口Closeable中關(guān)閉
覆蓋:
在類 OutputStream 中關(guān)閉
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: