クラス FastByteArrayOutputStream
- 実装されたすべてのインターフェース:
CloseableSE
、FlushableSE
、AutoCloseableSE
ByteArrayOutputStream
SE の迅速な代替。兄弟 ResizableByteArrayOutputStream
とは異なり、このバリアントは ByteArrayOutputStream
を継承しないことに注意してください。ByteArrayOutputStream
SE とは異なり、この実装は、常に byte[]
のサイズを変更する 1 ではなく、byte[]
の ArrayDeque
SE によってサポートされています。展開されたときにバッファをコピーしません。
初期バッファは、ストリームが最初に書き込まれたときにのみ作成されます。また、writeTo(OutputStream)
メソッドを使用してコンテンツを抽出した場合、内部バッファーのコピーはありません。
- 導入:
- 4.2
- 作成者:
- Craig Andrews, Juergen Hoeller
- 関連事項:
コンストラクターの概要
コンストラクターコンストラクター説明256 バイトのデフォルトの初期容量で新しいFastByteArrayOutputStream
を作成します。FastByteArrayOutputStream
(int initialBlockSize) 指定された初期容量で新しいFastByteArrayOutputStream
を作成します。メソッドのサマリー
修飾子と型メソッド説明void
close()
InputStream
SE を取得して、この OutputStream のデータを取得します。void
reset()
このFastByteArrayOutputStream
の内容をリセットします。void
resize
(int targetCapacity) 内部バッファのサイズを指定された容量に変更します。int
size()
このFastByteArrayOutputStream
に格納されているバイト数を返します。byte[]
新しく割り当てられたバイト配列を作成します。byte[]
ストリームのデータをバイト配列に変換し、バイト配列を返します。toString()
プラットフォームのデフォルトの文字セットを使用して、バッファーの内容を文字列デコードバイトに変換します。void
write
(byte[] data, int offset, int length) void
write
(int datum) void
writeTo
(OutputStreamSE out) 指定された OutputStream にバッファーの内容を書き込みます。クラス 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 クラスは、デコードプロセスをさらに制御する必要がある場合に使用する必要があります。
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 を取得して、この OutputStream のデータを取得します。OutputStream でメソッドが呼び出される場合(書き込みメソッド
reset()
、toByteArray()
、toByteArrayUnsafe()
を含むがこれらに限定されない)、InputStream
SE の動作は未定義であることに注意してください。- 戻り値:
- この OutputStream のコンテンツの
InputStream
SE
writeTo
指定された OutputStream にバッファーの内容を書き込みます。- パラメーター:
out
- 書き込む OutputStream- 例外:
IOExceptionSE
resize
public void resize(int targetCapacity) 内部バッファのサイズを指定された容量に変更します。- パラメーター:
targetCapacity
- 必要なバッファのサイズ- 例外:
IllegalArgumentExceptionSE
- 指定された容量が、すでにバッファに保存されているコンテンツの実際のサイズよりも小さい場合- 関連事項: