パッケージ org.springframework.util

クラス FastByteArrayOutputStream

java.lang.ObjectSE
java.io.OutputStreamSE
org.springframework.util.FastByteArrayOutputStream
実装されたすべてのインターフェース:
CloseableSEFlushableSEAutoCloseableSE

public class FastByteArrayOutputStream extends OutputStreamSE
ByteArrayOutputStreamSE の迅速な代替。兄弟 ResizableByteArrayOutputStream とは異なり、このバリアントは ByteArrayOutputStream を継承しないことに注意してください。

ByteArrayOutputStreamSE とは異なり、この実装は、常にサイズを変更する byte[] バッファーの代わりに、byte[] バッファーの ArrayDequeSE によってサポートされています。展開時にバッファはコピーされません。

初期バッファは、ストリームが最初に書き込まれるときにのみ作成されます。また、ストリームのコンテンツが writeTo(OutputStream) メソッド経由で抽出される場合、内部バッファのコピーは行われません。

導入:
4.2
作成者:
Craig Andrews, Juergen Hoeller
関連事項:
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    256 バイトのデフォルトの初期容量で新しい FastByteArrayOutputStream を作成します。
    FastByteArrayOutputStream(int initialBlockSize)
    指定された初期容量で新しい FastByteArrayOutputStream を作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    InputStreamSE を取得して、この FastByteArrayOutputStream の内容を取得します。
    void
    この FastByteArrayOutputStream の内容をリセットします。
    void
    resize(int targetCapacity)
    内部バッファのサイズを指定された容量に変更します。
    int
    この FastByteArrayOutputStream に格納されているバイト数を返します。
    byte[]
    新しく割り当てられたバイト配列を作成します。
    byte[]
    このストリームの内容をバイト配列に変換し、バイト配列を返します。
    プラットフォームのデフォルトの文字セットを使用してバイトをデコードすることにより、このストリームの内容を文字列に変換します。
    指定された CharsetSE を使用してバイトをデコードすることにより、このストリームの内容を文字列に変換します。
    void
    write(byte[] data, int offset, int length)
    void
    write(int datum)
    void
    この FastByteArrayOutputStream の内容を指定された OutputStreamSE に書き込みます。

    クラス java.io.OutputStreamSE から継承されたメソッド

    flush, nullOutputStream, writeSE

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
  • コンストラクターの詳細

    • FastByteArrayOutputStream

      public FastByteArrayOutputStream()
      256 バイトのデフォルトの初期容量で新しい FastByteArrayOutputStream を作成します。
    • FastByteArrayOutputStream

      public FastByteArrayOutputStream(int initialBlockSize)
      指定された初期容量で新しい FastByteArrayOutputStream を作成します。
      パラメーター:
      initialBlockSize - バイト単位の初期バッファサイズ
  • メソッドの詳細

    • write

      public void write(int datum) throws IOExceptionSE
      次で指定:
      クラス OutputStreamSEwriteSE 
      例外:
      IOExceptionSE
    • write

      public void write(byte[] data, int offset, int length) throws IOExceptionSE
      オーバーライド:
      クラス OutputStreamSEwriteSE 
      例外:
      IOExceptionSE
    • close

      public void close()
      次で指定:
      インターフェース AutoCloseableSEclose 
      次で指定:
      インターフェース CloseableSEclose 
      オーバーライド:
      クラス OutputStreamSEclose 
    • toString

      public StringSE toString()
      プラットフォームのデフォルトの文字セットを使用してバイトをデコードすることにより、このストリームの内容を文字列に変換します。新しい String の長さは文字セットの関数であるため、バッファのサイズと等しくない場合があります。

      このメソッドは常に、不正な形式の入力およびマップ不可能な文字シーケンスを、プラットフォームのデフォルトの文字セットのデフォルトの置換文字列に置き換えます。CharsetDecoderSE クラスは、デコードプロセスをさらに制御する必要がある場合に使用する必要があります。

      オーバーライド:
      クラス ObjectSEtoString 
      戻り値:
      このストリームの内容からデコードされた文字列
      関連事項:
    • toString

      public StringSE toString(CharsetSE charset)
      指定された CharsetSE を使用してバイトをデコードすることにより、このストリームの内容を文字列に変換します。
      パラメーター:
      charset - バイトのデコードに使用する CharsetSE
      戻り値:
      このストリームの内容からデコードされた文字列
      導入:
      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

      public InputStreamSE getInputStream()
      InputStreamSE を取得して、この FastByteArrayOutputStream の内容を取得します。

      この FastByteArrayOutputStream で何らかのメソッド (書き込みメソッド reset()toByteArray()toByteArrayUnsafe() を含むがこれらに限定されない) が呼び出された場合、InputStream の動作は未定義であることに注意してください。

      戻り値:
      この FastByteArrayOutputStream の内容の InputStream 
    • writeTo

      public void writeTo(OutputStreamSE out) throws IOExceptionSE
      この FastByteArrayOutputStream の内容を指定された OutputStreamSE に書き込みます。
      パラメーター:
      out - 書き込む OutputStream
      例外:
      IOExceptionSE
    • resize

      public void resize(int targetCapacity)
      内部バッファのサイズを指定された容量に変更します。
      パラメーター:
      targetCapacity - 必要なバッファのサイズ
      例外:
      IllegalArgumentExceptionSE - 指定された容量が、すでにバッファに保存されているコンテンツの実際のサイズよりも小さい場合
      関連事項: