java.lang.Object
java.io.OutputStream
java.io.ByteArrayOutputStream
- すべての実装されたインタフェース:
- Closeable,- Flushable,- AutoCloseable
public class ByteArrayOutputStream extends OutputStream
データがバイト配列に書き込まれる出力ストリームを実装します。 データが書き込まれるに従って、バッファは自動的に大きくなっていきます。 データは、
toByteArray()とtoString()を使用して取得できます。 
 
 ByteArrayOutputStreamを閉じても、何の影響もありません。 IOExceptionを生成せずにストリームが閉じられたあとで、このクラスのメソッドを呼び出すことができます。 
- 導入されたバージョン:
- 1.0
- 
フィールドのサマリー
- 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 ByteArrayOutputStream()新しいByteArrayOutputStreamを作成します。ByteArrayOutputStream(int size)指定されたサイズのバッファ容量をバイト単位で含む新しいByteArrayOutputStreamを作成します。
- 
メソッドのサマリー修飾子と型 メソッド 説明 voidclose()ByteArrayOutputStreamを閉じても、何の影響もありません。voidreset()出力ストリームに現在蓄積されているすべての出力が破棄されるように、このByteArrayOutputStreamのcountフィールドをゼロにリセットします。intsize()バッファの現在のサイズを返します。byte[]toByteArray()メモリーを割り当ててバイト配列を新しく作成します。StringtoString()プラットフォームのデフォルトの文字セットを使用してバイトをデコードしながら、バッファの内容を文字列に変換します。StringtoString(int hibyte)Deprecated.このメソッドでは、バイトから文字への変換が正しく行われません。StringtoString(String charsetName)指定されたcharsetを使用してバイトをデコードすることで、バッファの内容を文字列に変換します。StringtoString(Charset charset)指定されたcharsetを使用してバイトをデコードすることにより、バッファの内容を文字列に変換します。voidwrite(byte[] b, int off, int len)offのオフセットからこのByteArrayOutputStreamに、指定されたバイト配列からlenバイトを書き込みます。voidwrite(int b)指定されたバイトをこのByteArrayOutputStreamに書き込みます。voidwriteBytes(byte[] b)指定されたバイト配列の完全な内容をこのByteArrayOutputStreamに書き込みます。voidwriteTo(OutputStream out)out.write(buf, 0, count)を使用して出力ストリームの書込みメソッドを呼び出す場合と同様に、このByteArrayOutputStreamの完全な内容を指定された出力ストリーム引数に書き込みます。
- 
フィールド詳細
- 
コンストラクタの詳細- 
ByteArrayOutputStreampublic ByteArrayOutputStream()新しいByteArrayOutputStreamを作成します。 バッファ容量の初期値は32バイトですが、このサイズは必要に応じて大きくなります。
- 
ByteArrayOutputStreampublic ByteArrayOutputStream(int size)指定されたサイズのバッファ容量をバイト単位で含む新しいByteArrayOutputStreamを作成します。- パラメータ:
- size- 初期サイズ。
- 例外:
- IllegalArgumentException- サイズが負の値の場合。
 
 
- 
- 
メソッドの詳細- 
writepublic void write(int b)指定されたバイトをこのByteArrayOutputStreamに書き込みます。- 定義:
- write、クラス:- OutputStream
- パラメータ:
- b- 書き込まれるバイト。
 
- 
writepublic void write(byte[] b, int off, int len)offのオフセットからこのByteArrayOutputStreamに、指定されたバイト配列からlenバイトを書き込みます。- オーバーライド:
- write、クラス:- OutputStream
- パラメータ:
- b- データ。
- off- データの開始オフセット。
- len- 書き込むバイト数。
- 例外:
- NullPointerException-- bが- nullである場合。
- IndexOutOfBoundsException-- offが負の値の場合、- lenが負の値の場合、または- lenが- b.length - offより大きい場合
 
- 
writeBytespublic void writeBytes(byte[] b)指定されたバイト配列の完全な内容をこのByteArrayOutputStreamに書き込みます。- APIのノート:
- このメソッドはwrite(b, 0, b.length)と同等です。
- パラメータ:
- b- データ。
- 例外:
- NullPointerException-- bが- nullである場合。
- 導入されたバージョン:
- 11
 
- 
writeTopublic void writeTo(OutputStream out) throws IOExceptionout.write(buf, 0, count)を使用して出力ストリームの書込みメソッドを呼び出す場合と同様に、このByteArrayOutputStreamの完全な内容を指定された出力ストリーム引数に書き込みます。- パラメータ:
- out- データを書き込む出力ストリーム。
- 例外:
- NullPointerException-- outが- nullの場合。
- IOException- 入出力エラーが発生した場合。
 
- 
resetpublic void reset()出力ストリームに現在蓄積されているすべての出力が破棄されるように、このByteArrayOutputStreamのcountフィールドをゼロにリセットします。 この出力ストリームは、すでに割り当てられているバッファ・スペースを使って、再度使用することができます。
- 
toByteArraypublic byte[] toByteArray()メモリーを割り当ててバイト配列を新しく作成します。 配列のサイズは現在の出力ストリームと同じで、バッファの中の有効データはここにコピーされます。- 戻り値:
- 出力ストリームの現在の内容をバイト配列として返す。
- 関連項目:
- size()
 
- 
sizepublic int size()バッファの現在のサイズを返します。- 戻り値:
- countフィールドの値。出力ストリームの中の有効バイト数を表す。
- 関連項目:
- count
 
- 
toStringpublic String toString()プラットフォームのデフォルトの文字セットを使用してバイトをデコードしながら、バッファの内容を文字列に変換します。 新しいStringの長さは文字セットによって変化するため、バッファのサイズと一致しないことがあります。このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、プラットフォームのデフォルトの文字セット用の、デフォルトの置換文字列で置き換えます。 デコード処理をより強力に制御する必要がある場合、CharsetDecoderクラスを使用する必要があります。 
- 
toStringpublic 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指定されたcharsetを使用してバイトをデコードすることにより、バッファの内容を文字列に変換します。 新しいStringの長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。このメソッドは、不正な入力文字列およびマップ不可能文字列を常にcharsetのデフォルト置換文字列で置き換えます。 デコード処理をより強力に制御する必要がある場合、 CharsetDecoderクラスを使用する必要があります。- パラメータ:
- charset-- bytesのデコードに使用されるcharset
- 戻り値:
- バッファの内容からデコードされた文字列。
- 導入されたバージョン:
- 10
 
- 
toString@Deprecatedpublic String toString(int hibyte)Deprecated.このメソッドでは、バイトから文字への変換が正しく行われません。 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()
 
- 
closepublic void close() throws IOExceptionByteArrayOutputStreamを閉じても、何の影響もありません。IOExceptionを生成せずにストリームが閉じられたあとで、このクラスのメソッドを呼び出すことができます。- 定義:
- close、インタフェース:- AutoCloseable
- 定義:
- close、インタフェース:- Closeable
- オーバーライド:
- close、クラス:- OutputStream
- 例外:
- IOException- 入出力エラーが発生した場合。
 
 
-