鴻蒙OS ByteArrayOutputStream

2022-10-18 15:14 更新

ByteArrayOutputStream

java.lang.Object

|---java.io.OutputStream

|---|---java.io.ByteArrayOutputStream

public class ByteArrayOutputStream
extends OutputStream

該類實現(xiàn)了一個輸出流,其中的數(shù)據(jù)被寫入一個字節(jié)數(shù)組。當數(shù)據(jù)被寫入時,緩沖區(qū)會自動增長。數(shù)據(jù)可以用toByteArray()和toString()來檢索。

關(guān)閉ByteArrayOutputStream沒有效果。這個類中的方法可以在流被關(guān)閉后被調(diào)用而不產(chǎn)生IOException。

Since:

JDK1.0

字段總結(jié)

修飾符和類型 字段 描述
protected byte[] buf 存儲數(shù)據(jù)的緩沖區(qū)。
protected int count 緩沖區(qū)內(nèi)的有效字節(jié)數(shù)。

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
ByteArrayOutputStream() 創(chuàng)建一個新的字節(jié)數(shù)組輸出流。
ByteArrayOutputStream(int size) 創(chuàng)建一個新的字節(jié)數(shù)組輸出流,其緩沖區(qū)的容量為指定的字節(jié)數(shù)。

方法總結(jié)

修飾符和類型 方法 描述
void close() 關(guān)閉一個ByteArrayOutputStream沒有任何效果。
void reset() 將該字節(jié)數(shù)組輸出流的count字段重置為0,這樣,輸出流中當前累積的所有輸出都被丟棄。
int size() 返回緩沖區(qū)的當前大小。
byte[] toByteArray() 創(chuàng)建一個新分配的字節(jié)數(shù)組。
String toString() 將緩沖區(qū)的內(nèi)容轉(zhuǎn)換成字符串,使用平臺的默認字符集對字節(jié)進行解碼。
String toString(int hibyte) 棄用。這個方法不能正確地將字節(jié)轉(zhuǎn)換成字符。從JDK 1.1開始,首選的方法是通過toString(String enc)方法,它需要一個編碼名稱參數(shù),或者通過toString()方法,它使用平臺的默認字符編碼。
String toString(String charsetName) 通過使用指定的字符集對字節(jié)進行解碼,將緩沖區(qū)的內(nèi)容轉(zhuǎn)換為字符串。
void write(byte[] b, int off, int len) 從偏移量off處開始,將指定的字節(jié)數(shù)的len字節(jié)寫到這個字節(jié)數(shù)的輸出流中。
void write(int b) 將指定的字節(jié)寫入這個字節(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

字段詳細信息

buf

protected byte[] buf

存儲數(shù)據(jù)的緩沖區(qū)。

count

protected int count

緩沖區(qū)內(nèi)的有效字節(jié)數(shù)。

構(gòu)造函數(shù)詳細信息

ByteArrayOutputStream

public ByteArrayOutputStream()

創(chuàng)建一個新的字節(jié)數(shù)組輸出流。緩沖區(qū)的容量最初為32字節(jié),但如果有必要,其大小會增加。

ByteArrayOutputStream

public ByteArrayOutputStream(int size)

創(chuàng)建一個新的字節(jié)數(shù)組輸出流,其緩沖區(qū)的容量為指定的字節(jié)數(shù)。

參數(shù)。

參數(shù)名稱 參數(shù)描述
size 初始尺寸。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果尺寸為負數(shù)。

方法詳情

write

public void write(int b)

將指定的字節(jié)寫入這個字節(jié)數(shù)組的輸出流中。

指定的是:

write in class OutputStream

參數(shù)。

參數(shù)名稱 參數(shù)描述
b 要寫入的字節(jié)。

write

public void write(byte[] b, int off, int len)

從偏移量off開始,將指定字節(jié)數(shù)的len字節(jié)寫到這個字節(jié)數(shù)的輸出流中。

重寫:

write in class OutputStream

參數(shù):

參數(shù)名稱 參數(shù)描述
b 數(shù)據(jù)。
off 數(shù)據(jù)中的起始偏移。
len 要寫入的字節(jié)數(shù)。

writeTo

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錯誤。

reset

public void reset()

將這個字節(jié)數(shù)組輸出流的count字段重置為0,這樣,輸出流中當前積累的所有輸出都被丟棄了。該輸出流可以再次使用,重新使用已經(jīng)分配的緩沖空間。

toByteArray

public byte[] toByteArray()

創(chuàng)建一個新分配的字節(jié)數(shù)組。它的大小是這個輸出流的當前大小,緩沖區(qū)的有效內(nèi)容已經(jīng)被復制到它里面。

返回。

這個輸出流的當前內(nèi)容,作為一個字節(jié)數(shù)組。

size

public int size()

返回緩沖區(qū)的當前大小。

返回:

count 字段的值,即此輸出流中的有效字節(jié)數(shù)。

toString

public String toString()

使用平臺的默認字符集將緩沖區(qū)的內(nèi)容轉(zhuǎn)換為字符串解碼字節(jié)。 新字符串的長度是字符集的函數(shù),因此可能不等于緩沖區(qū)的大小。

此方法始終使用平臺默認字符集的默認替換字符串替換格式錯誤的輸入和不可映射的字符序列。 當需要對解碼過程進行更多控制時,應使用 CharsetDecoder 類。

覆蓋:

類 Object 中的 toString

返回:

從緩沖區(qū)內(nèi)容解碼的字符串。

Since:

JDK1.1

toString

public String toString(String charsetName) throws UnsupportedEncodingException

通過使用命名字符集解碼字節(jié),將緩沖區(qū)的內(nèi)容轉(zhuǎn)換為字符串。 新字符串的長度是字符集的函數(shù),因此可能不等于字節(jié)數(shù)組的長度。

此方法始終使用此字符集的默認替換字符串替換格式錯誤的輸入和不可映射的字符序列。 當需要對解碼過程進行更多控制時,應使用 CharsetDecoder 類。

參數(shù):

參數(shù)名稱 參數(shù)描述
charsetName 支持的字符集的名稱

返回:

從緩沖區(qū)內(nèi)容解碼的字符串。

Throws:

Throw名稱 Throw描述
UnsupportedEncodingException 如果不支持命名字符集

Since:

JDK1.1

toString

@Deprecated public String toString(int hibyte)

已棄用。 此方法不能正確地將字節(jié)轉(zhuǎn)換為字符。 從 JDK 1.1 開始,執(zhí)行此操作的首選方法是通過 toString(String enc) 方法,該方法接受一個 encoding-name 參數(shù),或 toString() 方法,該方法使用平臺的默認字符編碼。

創(chuàng)建一個新分配的字符串。 它的大小是輸出流的當前大小,并且緩沖區(qū)的有效內(nèi)容已被復制到其中。 結(jié)果字符串中的每個字符 c 都是從字節(jié)數(shù)組中的相應元素 b 構(gòu)造的,這樣:

     c == (char)(((hibyte & 0xff) << 8) | (b & 0xff)) 

參數(shù):

參數(shù)名稱 參數(shù)描述
hibyte 每個生成的 Unicode 字符的高字節(jié)。

返回:

輸出流的當前內(nèi)容,作為字符串。

close

public void close() throws IOException

關(guān)閉 ByteArrayOutputStream 無效。 可以在流關(guān)閉后調(diào)用此類中的方法,而不會生成 IOException。

指定者:

在接口 AutoCloseable 中關(guān)閉

指定者:

在接口Closeable中關(guān)閉

覆蓋:

在類 OutputStream 中關(guān)閉

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號