Java ByteArrayOutputStreamクラス
バイト配列出力ストリームはメモリ内にバイト配列バッファを作成し、出力ストリームに送信されたすべてのデータはこのバイト配列バッファに保存されます。バイト配列出力ストリームオブジェクトを作成する方法はいくつかあります。
次のコンストラクタは32バイト(デフォルトサイズ)のバッファを作成します。
OutputStream bOut = new ByteArrayOutputStream();
別のコンストラクタはサイズがaバイトのバッファを作成します。
OutputStream bOut = new ByteArrayOutputStream(int a)
バイト配列出力ストリームオブジェクトの作成に成功したら、次のリストのメソッドを参照して、ストリームに対する書き込み操作やその他の操作を行うことができます。
| 番号 | メソッドの説明 |
|---|---|
| 1 |
public void reset() このバイト配列出力ストリームの countフィールドをゼロにリセットし、出力ストリームに現在蓄積されているすべてのデータ出力を破棄します。 |
| 2 |
public byte[] toByteArray() 新しく割り当てられたバイト配列を作成します。配列のサイズは現在の出力ストリームのサイズで、内容は現在の出力ストリームのコピーです。 |
| 3 |
public String toString() バッファの内容を文字列に変換します。プラットフォームのデフォルト文字エンコーディングに従ってバイトを文字に変換します。 |
| 4 |
public void write(int w) 指定されたバイトをこのバイト配列出力ストリームに書き込みます。 |
| 5 |
public void write(byte []b, int off, int len) 指定されたバイト配列内のオフセット offから始まるlenバイトをこのバイト配列出力ストリームに書き込みます。 |
| 6 |
public void writeTo(OutputStream outSt) このバイト配列出力ストリームのすべての内容を、指定された出力ストリーム引数に書き込みます。 |
例
次の例は、ByteArrayInputStream と ByteArrayOutputStream の使用法を示しています:
例
import java.io.*;
public class ByteStreamTest {
public static void main(String args[])throws IOException {
ByteArrayOutputStream bOutput = new ByteArrayOutputStream(12);
while( bOutput.size()!= 10 ) {
//ユーザー入力を取得
bOutput.write(System.in.read());
}
byte b [] = bOutput.toByteArray();
System.out.println("Print the content");
for(int x= 0 ; x < b.length; x++) {
//文字を出力
System.out.print((char)b[x] + " ");
}
System.out.println(" ");
int c;
ByteArrayInputStream bInput = new ByteArrayInputStream(b);
System.out.println("Converting characters to Upper case " );
for(int y = 0 ; y < 1; y++ ) {
while(( c= bInput.read())!= -1) {
System.out.println(Character.toUpperCase((char)c));
}
bInput.reset();
}
}
}
上記の例をコンパイルして実行した結果は次のとおりです:
asdfghjkly Print the content a s d f g h j k l y Converting characters to Upper case A S D F G H J K L Y
その他の拡張
Java ストリーム(Stream)