Java ByteArrayOutputStreamクラス

Java 流(Stream)Java ストリーム(Stream)


バイト配列出力ストリームはメモリ内にバイト配列バッファを作成し、出力ストリームに送信されたすべてのデータはこのバイト配列バッファに保存されます。バイト配列出力ストリームオブジェクトを作成する方法はいくつかあります。

次のコンストラクタは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)Java ストリーム(Stream)

その他の拡張