モジュール java.base
パッケージ java.io

クラスByteArrayOutputStream

java.lang.Object
java.io.OutputStream
java.io.ByteArrayOutputStream
すべての実装されたインタフェース:
Closeable, Flushable, AutoCloseable

public class ByteArrayOutputStream extends OutputStream
データがバイト配列に書き込まれる出力ストリームを実装します。 データが書き込まれるに従って、バッファは自動的に大きくなっていきます。 データは、toByteArray()toString()を使用して取得できます。

ByteArrayOutputStreamをクローズしても効果はありません。 このクラスのメソッドは、IOExceptionを生成せずにストリームがクローズされた後にコールできます。

導入されたバージョン:
1.0
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected byte[]
    データが格納されるバッファです。
    protected int
    バッファの中の有効バイト数です。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    新しいByteArrayOutputStreamを作成します。
    指定されたサイズのバッファ容量をバイト単位で含む新しいByteArrayOutputStreamを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    ByteArrayOutputStreamをクローズしても効果はありません。
    void
    出力ストリームに現在蓄積されているすべての出力が破棄されるように、このByteArrayOutputStreamcountフィールドをゼロにリセットします。
    int
    バッファの現在のサイズを返します。
    byte[]
    メモリーを割り当ててバイト配列を新しく作成します。
    デフォルトの文字セットを使用して、バッファの内容を文字列デコード・バイトに変換します。
    toString(int hibyte)
    非推奨。
    このメソッドでは、バイトから文字への変換が正しく行われません。
    toString(String charsetName)
    指定されたcharsetを使用してバイトをデコードすることで、バッファの内容を文字列に変換します。
    toString(Charset charset)
    指定されたcharsetを使用してバイトをデコードすることで、バッファの内容を文字列に変換します。
    void
    write(byte[] b, int off, int len)
    offのオフセットからこのByteArrayOutputStreamに、指定されたバイト配列からlenバイトを書き込みます。
    void
    write(int b)
    指定されたバイトをこのByteArrayOutputStreamに書き込みます。
    void
    writeBytes(byte[] b)
    指定されたバイト配列の完全な内容をこのByteArrayOutputStreamに書き込みます。
    void
    out.write(buf, 0, count)を使用して出力ストリームの書込みメソッドを呼び出す場合と同様に、このByteArrayOutputStreamの完全な内容を指定された出力ストリーム引数に書き込みます。

    クラスjava.io.OutputStreamで宣言されたメソッド

    flush, nullOutputStream, write

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • フィールド詳細

    • buf

      protected byte[] buf
      データが格納されるバッファです。
    • count

      protected int count
      バッファの中の有効バイト数です。
  • コンストラクタの詳細

    • ByteArrayOutputStream

      public ByteArrayOutputStream()
      新しいByteArrayOutputStreamを作成します。 バッファ容量の初期値は32バイトですが、このサイズは必要に応じて大きくなります。
    • ByteArrayOutputStream

      public ByteArrayOutputStream(int size)
      指定されたサイズのバッファ容量をバイト単位で含む新しいByteArrayOutputStreamを作成します。
      パラメータ:
      size - 初期サイズ。
      例外:
      IllegalArgumentException - サイズが負の値の場合。
  • メソッドの詳細

    • write

      public void write(int b)
      指定されたバイトをこのByteArrayOutputStreamに書き込みます。
      定義:
      write、クラスOutputStream
      パラメータ:
      b - 書き込まれるバイト。
    • write

      public void write(byte[] b, int off, int len)
      offのオフセットからこのByteArrayOutputStreamに、指定されたバイト配列からlenバイトを書き込みます。
      オーバーライド:
      write、クラスOutputStream
      パラメータ:
      b - データ。
      off - データの開始オフセット。
      len - 書き込むバイト数。
      例外:
      NullPointerException - bnullである場合。
      IndexOutOfBoundsException - offが負の値の場合、lenが負の値の場合、またはlenb.length - offより大きい場合
    • writeBytes

      public void writeBytes(byte[] b)
      指定されたバイト配列の完全な内容をこのByteArrayOutputStreamに書き込みます。
      APIのノート:
      このメソッドはwrite(b, 0, b.length)と同等です。
      パラメータ:
      b - データ。
      例外:
      NullPointerException - bnullである場合。
      導入されたバージョン:
      11
    • writeTo

      public void writeTo(OutputStream out) throws IOException
      out.write(buf, 0, count)を使用して出力ストリームの書込みメソッドを呼び出す場合と同様に、このByteArrayOutputStreamの完全な内容を指定された出力ストリーム引数に書き込みます。
      パラメータ:
      out - データを書き込む出力ストリーム。
      例外:
      NullPointerException - outnullの場合。
      IOException - 入出力エラーが発生した場合。
    • reset

      public void reset()
      出力ストリームに現在蓄積されているすべての出力が破棄されるように、このByteArrayOutputStreamcountフィールドをゼロにリセットします。 この出力ストリームは、すでに割り当てられているバッファ・スペースを使って、再度使用することができます。
      関連項目:
    • toByteArray

      public byte[] toByteArray()
      メモリーを割り当ててバイト配列を新しく作成します。 配列のサイズは現在の出力ストリームと同じで、バッファの中の有効データはここにコピーされます。
      戻り値:
      出力ストリームの現在の内容をバイト配列として返す。
      関連項目:
    • size

      public int size()
      バッファの現在のサイズを返します。
      戻り値:
      countフィールドの値。出力ストリームの中の有効バイト数を表す。
      関連項目:
    • toString

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

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

      オーバーライド:
      toString、クラスObject
      戻り値:
      バッファの内容からデコードされた文字列。
      導入されたバージョン:
      1.1
      関連項目:
    • toString

      public String toString(String charsetName) throws UnsupportedEncodingException
      指定されたcharsetを使用してバイトをデコードすることで、バッファの内容を文字列に変換します。

      このメソッドは、charsetを使用する#toString(charset)と同等です。

      次のフォームのメソッド呼出しは、

          ByteArrayOutputStream b;
          b.toString("UTF-8")
      
      上記のメソッドは、次の表現と同様に動作します。
          ByteArrayOutputStream b;
          b.toString(StandardCharsets.UTF_8)
      

      パラメータ:
      charsetName - サポートされているcharsetの名前
      戻り値:
      バッファの内容からデコードされた文字列。
      例外:
      UnsupportedEncodingException - 指定された文字セットがサポートされていない場合
      導入されたバージョン:
      1.1
    • toString

      public String toString(Charset charset)
      指定されたcharsetを使用してバイトをデコードすることで、バッファの内容を文字列に変換します。 新しいStringの長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。

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

      パラメータ:
      charset - bytesのデコードに使用されるcharset
      戻り値:
      バッファの内容からデコードされた文字列。
      導入されたバージョン:
      10
    • toString

      @Deprecated public String toString(int hibyte)
      非推奨。
      このメソッドでは、バイトから文字への変換が正しく行われません。 JDK 1.1では、toString(String charsetName)またはtoString(Charset charset)メソッドを使用することをお薦めします。このメソッドでは、エンコーディング名または文字セット引数を取るか、デフォルトの文字セットを使用するtoString()メソッドを使用します。
      新しくメモリーを割り当てて文字列を作成します。 文字列のサイズは現在の出力ストリームと同じにされ、バッファの中の有効データはここにコピーされます。 作成される文字列の各文字データcは、バイト配列の対応する要素bから、次のようになります。
          c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))
      
      パラメータ:
      hibyte - 結果の各Unicode文字の上位バイト。
      戻り値:
      出力ストリームの現在の内容を表す文字列。
      関連項目:
    • close

      public void close() throws IOException
      ByteArrayOutputStreamをクローズしても効果はありません。 このクラスのメソッドは、IOExceptionを生成せずにストリームがクローズされた後にコールできます。
      定義:
      close、インタフェースAutoCloseable
      定義:
      close、インタフェースCloseable
      オーバーライド:
      close、クラスOutputStream
      例外:
      IOException - 入出力エラーが発生した場合。