クラス FastByteArrayOutputStream
- 実装されたすべてのインターフェース:
CloseableSE
、FlushableSE
、AutoCloseableSE
ByteArrayOutputStream
SE の迅速な代替。兄弟 ResizableByteArrayOutputStream
とは異なり、このバリアントは ByteArrayOutputStream
を継承しないことに注意してください。ByteArrayOutputStream
SE とは異なり、この実装は、常にサイズを変更する byte[]
バッファーの代わりに、byte[]
バッファーの ArrayDeque
SE によってサポートされています。展開時にバッファはコピーされません。
初期バッファは、ストリームが最初に書き込まれるときにのみ作成されます。また、ストリームのコンテンツが writeTo(OutputStream)
メソッド経由で抽出される場合、内部バッファのコピーは行われません。
- 導入:
- 4.2
- 作成者:
- Craig Andrews, Juergen Hoeller
- 関連事項:
コンストラクターの概要
コンストラクターコンストラクター説明256 バイトのデフォルトの初期容量で新しいFastByteArrayOutputStream
を作成します。FastByteArrayOutputStream
(int initialBlockSize) 指定された初期容量で新しいFastByteArrayOutputStream
を作成します。メソッドのサマリー
修飾子と型メソッド説明void
close()
InputStream
SE を取得して、このFastByteArrayOutputStream
の内容を取得します。void
reset()
このFastByteArrayOutputStream
の内容をリセットします。void
resize
(int targetCapacity) 内部バッファのサイズを指定された容量に変更します。int
size()
このFastByteArrayOutputStream
に格納されているバイト数を返します。byte[]
新しく割り当てられたバイト配列を作成します。byte[]
このストリームの内容をバイト配列に変換し、バイト配列を返します。toString()
プラットフォームのデフォルトの文字セットを使用してバイトをデコードすることにより、このストリームの内容を文字列に変換します。指定されたCharset
SE を使用してバイトをデコードすることにより、このストリームの内容を文字列に変換します。void
write
(byte[] data, int offset, int length) void
write
(int datum) void
writeTo
(OutputStreamSE out) このFastByteArrayOutputStream
の内容を指定されたOutputStream
SE に書き込みます。クラス java.io.OutputStreamSE から継承されたメソッド
flush, nullOutputStream, writeSE
コンストラクターの詳細
FastByteArrayOutputStream
public FastByteArrayOutputStream()256 バイトのデフォルトの初期容量で新しいFastByteArrayOutputStream
を作成します。FastByteArrayOutputStream
public FastByteArrayOutputStream(int initialBlockSize) 指定された初期容量で新しいFastByteArrayOutputStream
を作成します。- パラメーター:
initialBlockSize
- バイト単位の初期バッファサイズ
メソッドの詳細
write
- 次で指定:
- クラス
OutputStreamSE
のwriteSE
- 例外:
IOExceptionSE
write
- オーバーライド:
- クラス
OutputStreamSE
のwriteSE
- 例外:
IOExceptionSE
close
public void close()- 次で指定:
- インターフェース
AutoCloseableSE
のclose
- 次で指定:
- インターフェース
CloseableSE
のclose
- オーバーライド:
- クラス
OutputStreamSE
のclose
toString
プラットフォームのデフォルトの文字セットを使用してバイトをデコードすることにより、このストリームの内容を文字列に変換します。新しいString
の長さは文字セットの関数であるため、バッファのサイズと等しくない場合があります。このメソッドは常に、不正な形式の入力およびマップ不可能な文字シーケンスを、プラットフォームのデフォルトの文字セットのデフォルトの置換文字列に置き換えます。CharsetDecoderSE クラスは、デコードプロセスをさらに制御する必要がある場合に使用する必要があります。
toString
指定されたCharset
SE を使用してバイトをデコードすることにより、このストリームの内容を文字列に変換します。- パラメーター:
charset
- バイトのデコードに使用するCharset
SE- 戻り値:
- このストリームの内容からデコードされた文字列
- 導入:
- 6.1.2
- 関連事項:
size
public int size()このFastByteArrayOutputStream
に格納されているバイト数を返します。toByteArrayUnsafe
public byte[] toByteArrayUnsafe()このストリームの内容をバイト配列に変換し、バイト配列を返します。また、メモリを節約するために、内部構造をバイト配列に置き換えます。バイト配列が作成されている場合は、それを使用することもできます。このアプローチは、このメソッドが暫定的に書き込みなしで 2 回呼び出された場合、2 番目の呼び出しは no-op であることも意味します。
このメソッドは内部バッファを返すため、「安全ではありません」。呼び出し元は、返されたバッファを変更しないでください。
- 戻り値:
- バイト配列としてのこのストリームの現在の内容
- 関連事項:
toByteArray
public byte[] toByteArray()新しく割り当てられたバイト配列を作成します。そのサイズはこの出力ストリームの現在のサイズであり、内部バッファの有効な内容が含まれます。
- 戻り値:
- バイト配列としてのこのストリームの現在の内容
- 関連事項:
reset
public void reset()このFastByteArrayOutputStream
の内容をリセットします。出力ストリームに現在蓄積されているすべての出力は破棄されます。出力ストリームは再び使用できます。
getInputStream
InputStream
SE を取得して、このFastByteArrayOutputStream
の内容を取得します。この
FastByteArrayOutputStream
で何らかのメソッド (書き込みメソッドreset()
、toByteArray()
、toByteArrayUnsafe()
を含むがこれらに限定されない) が呼び出された場合、InputStream
の動作は未定義であることに注意してください。- 戻り値:
- この
FastByteArrayOutputStream
の内容のInputStream
writeTo
このFastByteArrayOutputStream
の内容を指定されたOutputStream
SE に書き込みます。- パラメーター:
out
- 書き込む OutputStream- 例外:
IOExceptionSE
resize
public void resize(int targetCapacity) 内部バッファのサイズを指定された容量に変更します。- パラメーター:
targetCapacity
- 必要なバッファのサイズ- 例外:
IllegalArgumentExceptionSE
- 指定された容量が、すでにバッファに保存されているコンテンツの実際のサイズよりも小さい場合- 関連事項: