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
を作成します。 -
メソッドのサマリー
修飾子と型メソッド説明void
close()
ByteArrayOutputStream
を閉じても、何の影響もありません。void
reset()
出力ストリームに現在蓄積されているすべての出力が破棄されるように、このByteArrayOutputStream
のcount
フィールドをゼロにリセットします。int
size()
バッファの現在のサイズを返します。byte[]
メモリーを割り当ててバイト配列を新しく作成します。toString()
プラットフォームのデフォルトの文字セットを使用してバイトをデコードしながら、バッファの内容を文字列に変換します。toString(int hibyte)
非推奨。このメソッドでは、バイトから文字への変換が正しく行われません。指定された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
-
フィールド詳細
-
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 IOExceptionout.write(buf, 0, count)
を使用して出力ストリームの書込みメソッドを呼び出す場合と同様に、このByteArrayOutputStream
の完全な内容を指定された出力ストリーム引数に書き込みます。- パラメータ:
out
- データを書き込む出力ストリーム。- 例外:
NullPointerException
-out
がnull
の場合。IOException
- 入出力エラーが発生した場合。
-
reset
public void reset()出力ストリームに現在蓄積されているすべての出力が破棄されるように、このByteArrayOutputStream
のcount
フィールドをゼロにリセットします。 この出力ストリームは、すでに割り当てられているバッファ・スペースを使って、再度使用することができます。 -
toByteArray
public byte[] toByteArray()メモリーを割り当ててバイト配列を新しく作成します。 配列のサイズは現在の出力ストリームと同じで、バッファの中の有効データはここにコピーされます。- 戻り値:
- 出力ストリームの現在の内容をバイト配列として返す。
- 関連項目:
size()
-
size
public int size()バッファの現在のサイズを返します。- 戻り値:
count
フィールドの値。出力ストリームの中の有効バイト数を表す。- 関連項目:
count
-
toString
public String toString()プラットフォームのデフォルトの文字セットを使用してバイトをデコードしながら、バッファの内容を文字列に変換します。 新しいString
の長さは文字セットによって変化するため、バッファのサイズと一致しないことがあります。このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、プラットフォームのデフォルトの文字セット用の、デフォルトの置換文字列で置き換えます。 デコード処理をより強力に制御する必要がある場合、CharsetDecoderクラスを使用する必要があります。
-
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
指定された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 IOExceptionByteArrayOutputStream
を閉じても、何の影響もありません。IOException
を生成せずにストリームが閉じられたあとで、このクラスのメソッドを呼び出すことができます。- 定義:
close
、インタフェース:AutoCloseable
- 定義:
close
、インタフェース:Closeable
- オーバーライド:
close
、クラス:OutputStream
- 例外:
IOException
- 入出力エラーが発生した場合。
-