モジュール 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[] buf
    データが格納されるバッファです。
    protected int count
    バッファの中の有効バイト数です。
  • コンストラクタのサマリー

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

    修飾子と型 メソッド 説明
    void close()
    ByteArrayOutputStreamを閉じても、何の影響もありません。
    void reset()
    出力ストリームに現在蓄積されているすべての出力が破棄されるように、このByteArrayOutputStreamcountフィールドをゼロにリセットします。
    int size()
    バッファの現在のサイズを返します。
    byte[] toByteArray()
    メモリーを割り当ててバイト配列を新しく作成します。
    String toString()
    プラットフォームのデフォルトの文字セットを使用してバイトをデコードしながら、バッファの内容を文字列に変換します。
    String toString​(int hibyte)
    非推奨。
    このメソッドでは、バイトから文字への変換が正しく行われません。
    String toString​(String charsetName)
    指定されたcharsetを使用してバイトをデコードすることで、バッファの内容を文字列に変換します。
    String 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 writeTo​(OutputStream out)
    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フィールドをゼロにリセットします。 この出力ストリームは、すでに割り当てられているバッファ・スペースを使って、再度使用することができます。
      関連項目:
      ByteArrayInputStream.count
    • toByteArray

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

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

      public String toString()
      プラットフォームのデフォルトの文字セットを使用してバイトをデコードしながら、バッファの内容を文字列に変換します。 新しいStringの長さは文字セットによって変化するため、バッファのサイズと一致しないことがあります。

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

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

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

      このメソッドは、#toString(charset)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の長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。

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

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

      @Deprecatedpublic 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文字の上位バイト。
      戻り値:
      出力ストリームの現在の内容を表す文字列。
      関連項目:
      size(), toString(String), toString()
    • close

      public void close() throws IOException
      ByteArrayOutputStreamを閉じても、何の影響もありません。 IOExceptionを生成せずにストリームが閉じられたあとで、このクラスのメソッドを呼び出すことができます。
      定義:
      close、インタフェース: AutoCloseable
      定義:
      close、インタフェース: Closeable
      オーバーライド:
      close、クラス: OutputStream
      例外:
      IOException - 入出力エラーが発生した場合。