モジュール 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を作成します。
      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の完全な内容を指定された出力ストリーム引数に書き込みます。
    • フィールドの詳細

      • 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

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

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