クラスByteArrayOutputStream
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(int size) 指定されたサイズのバッファ容量をバイト単位で含む新しいByteArrayOutputStreamを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明voidclose()ByteArrayOutputStreamをクローズしても効果はありません。voidreset()出力ストリームに現在蓄積されているすべての出力が破棄されるように、このByteArrayOutputStreamのcountフィールドをゼロにリセットします。intsize()バッファの現在のサイズを返します。byte[]メモリーを割り当ててバイト配列を新しく作成します。toString()デフォルトの文字セットを使用して、バッファの内容を文字列デコード・バイトに変換します。toString(int hibyte) 非推奨。このメソッドは、バイトを文字に正しく変換しません。指定された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の完全な内容を指定された出力ストリーム引数に書き込みます。クラスjava.io.OutputStreamで宣言されたメソッド
flush, nullOutputStream, write
-
フィールド詳細
-
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-bがnullである場合。IndexOutOfBoundsException-offが負の値の場合、lenが負の値の場合、またはlenがb.length - offより大きい場合
-
writeBytes
public void writeBytes(byte[] b) 指定されたバイト配列の完全な内容をこのByteArrayOutputStreamに書き込みます。- APIのノート:
- このメソッドは
write(b, 0, b.length)と同等です。 - パラメータ:
b- データ。- スロー:
NullPointerException-bがnullである場合。- 導入されたバージョン:
- 11
-
writeTo
public void writeTo(OutputStream out) throws IOException out.write(buf, 0, count)を使用して出力ストリームの書込みメソッドを呼び出す場合と同様に、このByteArrayOutputStreamの完全な内容を指定された出力ストリーム引数に書き込みます。- パラメータ:
out- データを書き込む出力ストリーム。- スロー:
NullPointerException-outがnullの場合。IOException- 入出力エラーが発生した場合。
-
reset
public void reset()出力ストリームに現在蓄積されているすべての出力が破棄されるように、このByteArrayOutputStreamのcountフィールドをゼロにリセットします。 この出力ストリームは、すでに割り当てられているバッファ・スペースを使って、再度使用することができます。- 関連項目:
-
toByteArray
public byte[] toByteArray()メモリーを割り当ててバイト配列を新しく作成します。 配列のサイズは現在の出力ストリームと同じで、バッファの中の有効データはここにコピーされます。- 戻り値:
- 出力ストリームの現在の内容をバイト配列として返す。
- 関連項目:
-
size
public int size()バッファの現在のサイズを返します。- 戻り値:
countフィールドの値。出力ストリームの中の有効バイト数を表す。- 関連項目:
-
toString
public String toString()デフォルトの文字セットを使用して、バッファの内容を文字列デコード・バイトに変換します。 新しいStringの長さは文字セットの機能であるため、バッファのサイズと等しくない場合があります。このメソッドは、常に、不正な入力およびマップ不可能な文字シーケンスをデフォルトの文字セットのデフォルト置換文字列に置き換えます。 デコード処理をより強力に制御する必要がある場合、CharsetDecoderクラスを使用する必要があります。
-
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
指定された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 IOExceptionByteArrayOutputStreamをクローズしても効果はありません。 このクラスのメソッドは、IOExceptionを生成せずにストリームがクローズされた後にコールできます。- 定義:
close、インタフェースAutoCloseable- 定義:
close、インタフェースCloseable- オーバーライド:
close、クラスOutputStream- スロー:
IOException- 入出力エラーが発生した場合。
-