モジュール java.base
パッケージ 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​(int size)
      バイト数で指定されたサイズのバッファを持つ、バイト配列出力ストリームを新しく作成します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 具象メソッド 非推奨のメソッド 
      修飾子と型 メソッド 説明
      void close​()
      ByteArrayOutputStreamを閉じても、何の影響もありません。
      void reset​()
      このバイト配列出力ストリームのcountフィールドをゼロにリセットします。その結果、現在出力ストリームに蓄積されているすべての出力が破棄されます。
      int size​()
      バッファの現在のサイズを返します。
      byte[] toByteArray​()
      メモリーを割り当ててバイト配列を新しく作成します。
      String toString​()
      プラットフォームのデフォルトの文字セットを使用してバイトをデコードしながら、バッファの内容を文字列に変換します。
      String toString​(int hibyte)
      非推奨。 
      このメソッドでは、バイトから文字への変換が正しく行われません。 JDK 1.1以降、これを行うには、エンコーディング名を引数に取るtoString(String enc)メソッドか、プラットフォームのデフォルトの文字エンコーディングを使用するtoString()メソッドを使うことが推奨されています。
      String toString​(String charsetName)
      指定されたcharsetを使用してバイトをデコードすることで、バッファの内容を文字列に変換します。
      void write​(byte[] b, int off, int len)
      指定されたバイト配列のオフセット位置offから始まるlenバイトをこのバイト配列出力ストリームに書き込みます。
      void write​(int b)
      指定されたバイトを、バイト配列出力ストリームに書き込みます。
      void writeTo​(OutputStream out)
      このバイト配列出力ストリームのすべての内容を、指定された出力ストリーム引数に書き込みます。これはout.write(buf, 0, count)を使って出力ストリームのwriteメソッドを呼び出すのと同じです。
    • フィールドの詳細

      • buf

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

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

      • ByteArrayOutputStream

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

        public ByteArrayOutputStream​(int size)
        バイト数で指定されたサイズのバッファを持つ、バイト配列出力ストリームを新しく作成します。
        パラメータ:
        size - 初期サイズ。
        例外:
        IllegalArgumentException - サイズが負の値の場合。
    • メソッドの詳細

      • write

        public void write​(int b)
        指定されたバイトを、バイト配列出力ストリームに書き込みます。
        定義:
        write、クラス: OutputStream
        パラメータ:
        b - 書き込まれるバイト。
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
        指定されたバイト配列のオフセット位置offから始まるlenバイトをこのバイト配列出力ストリームに書き込みます。
        オーバーライド:
        write、クラス: OutputStream
        パラメータ:
        b - データ。
        off - データの開始オフセット。
        len - 書き込むバイト数。
      • writeTo

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

        public void reset​()
        このバイト配列出力ストリームのcountフィールドをゼロにリセットします。その結果、現在出力ストリームに蓄積されているすべての出力が破棄されます。 この出力ストリームは、すでに割り当てられているバッファ・スペースを使って、再度使用することができます。
        関連項目:
        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を使用してバイトをデコードすることで、バッファの内容を文字列に変換します。 新しいStringの長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。

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

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

        @Deprecated
        public String toString​(int hibyte)
        非推奨。 このメソッドでは、バイトから文字への変換が正しく行われません。 JDK 1.1以降、これを行うには、エンコーディング名を引数に取るtoString(String enc)メソッドか、プラットフォームのデフォルトの文字エンコーディングを使用する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 - 入出力エラーが発生した場合。