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