ByteArrayOutputStream
| 日本語 | バイト配列出力流れ |
| 英語 | byte array output stream |
| ふりがな | ばいとあれいあうとぷっとすとりーむ |
| フリガナ | バイトアレイアウトプットストリーム |
J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.io.ByteArrayOutputStream。
ストリームクラス。OutputStreamクラスのサブクラスであり、バイト出力ストリームクラスである。
バイト出力ストリームクラスの中では「出力先」に位置する。
byte型の配列を出力先とするクラス。
通常、バイト出力ストリームはファイルやソケットを出力先とするが、ByteArrayOutputStreamクラスはbyte[]変数、つまりメモリを出力先とする。
ファイルやソケットは対象が存在しないとアクセスできないため、その代わりとして使用する。また、文字列等のメモリ上のデータを対象とする場合にも使用する。
ByteArrayOutputStreamクラスのコンストラクタには特に何も渡す必要はない。また、「出力先」、つまり「データ側の末端」であるため、OutputStreamクラスを引数に持つコンストラクタはない。
ByteArrayOutputStreamクラスのwrite()メソッドを用いてバイトデータを書き込む。引数がひとつのwrite()メソッドは、int型を引数に受け取るが、実際に処理されるのはbyte型のサイズのみのため、渡せる値は0x00~0xFFとなる。
書き込み先はByteArrayOutputStreamクラス内部となる。この書き込まれたバイトデータをbyte型配列として取り出す場合には、toByteArray()メソッドを呼び出す。
処理終了後は、対象が内部にあるため、最後にclose()メソッドを呼ぶ必要はない。
また、各メソッドもIOException例外を投げない。
ストリームクラス。OutputStreamクラスのサブクラスであり、バイト出力ストリームクラスである。
バイト出力ストリームクラスの中では「出力先」に位置する。
byte型の配列を出力先とするクラス。
通常、バイト出力ストリームはファイルやソケットを出力先とするが、ByteArrayOutputStreamクラスはbyte[]変数、つまりメモリを出力先とする。
ファイルやソケットは対象が存在しないとアクセスできないため、その代わりとして使用する。また、文字列等のメモリ上のデータを対象とする場合にも使用する。
ByteArrayOutputStreamクラスのコンストラクタには特に何も渡す必要はない。また、「出力先」、つまり「データ側の末端」であるため、OutputStreamクラスを引数に持つコンストラクタはない。
ByteArrayOutputStreamクラスのwrite()メソッドを用いてバイトデータを書き込む。引数がひとつのwrite()メソッドは、int型を引数に受け取るが、実際に処理されるのはbyte型のサイズのみのため、渡せる値は0x00~0xFFとなる。
書き込み先はByteArrayOutputStreamクラス内部となる。この書き込まれたバイトデータをbyte型配列として取り出す場合には、toByteArray()メソッドを呼び出す。
処理終了後は、対象が内部にあるため、最後にclose()メソッドを呼ぶ必要はない。
また、各メソッドもIOException例外を投げない。
// Sample.java
import java.io.ByteArrayOutputStream;
public class Sample
{
public static void main( String[] args )
{
// ByteArrayOutputStreamクラスを用意します。
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// バイトデータを書き込みます。
byteArrayOutputStream.write( 0x01 );
byteArrayOutputStream.write( 0x02 );
byteArrayOutputStream.write( 0x03 );
byteArrayOutputStream.write( 0xFF );
byteArrayOutputStream.write( 0x100 );
// 書き込まれたバイトデータをbyte型配列として取得します。
byte[] bytes = byteArrayOutputStream.toByteArray();
for( int iF1 = 0; iF1 < bytes.length; ++iF1 )
{
// 出力します。
System.out.println( "0x" + Integer.toHexString( bytes[iF1] ) + " ( " + bytes[iF1] + " )" );
}
// 0x1 ( 1 )
// 0x2 ( 2 )
// 0x3 ( 3 )
// 0xffffffff ( -1 )
// 0x0 ( 0 )
// このように、書き込んだバイトデータはbyte型配列として
// 取得できます。
// write()メソッドはint型を受け取りますが、
// ByteArrayOutputStreamクラスは「バイト出力ストリーム」ですので
// byte型のサイズにしてから書き込みます。
// ByteArrayOutputStreamクラスはclose()メソッドを
// 呼ぶ必要はありません。
}
}
import java.io.ByteArrayOutputStream;
public class Sample
{
public static void main( String[] args )
{
// ByteArrayOutputStreamクラスを用意します。
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// バイトデータを書き込みます。
byteArrayOutputStream.write( 0x01 );
byteArrayOutputStream.write( 0x02 );
byteArrayOutputStream.write( 0x03 );
byteArrayOutputStream.write( 0xFF );
byteArrayOutputStream.write( 0x100 );
// 書き込まれたバイトデータをbyte型配列として取得します。
byte[] bytes = byteArrayOutputStream.toByteArray();
for( int iF1 = 0; iF1 < bytes.length; ++iF1 )
{
// 出力します。
System.out.println( "0x" + Integer.toHexString( bytes[iF1] ) + " ( " + bytes[iF1] + " )" );
}
// 0x1 ( 1 )
// 0x2 ( 2 )
// 0x3 ( 3 )
// 0xffffffff ( -1 )
// 0x0 ( 0 )
// このように、書き込んだバイトデータはbyte型配列として
// 取得できます。
// write()メソッドはint型を受け取りますが、
// ByteArrayOutputStreamクラスは「バイト出力ストリーム」ですので
// byte型のサイズにしてから書き込みます。
// ByteArrayOutputStreamクラスはclose()メソッドを
// 呼ぶ必要はありません。
}
}
// Sample.java
import java.io.ByteArrayOutputStream;
public class Sample
{
public static void main( String[] args )
{
// ByteArrayOutputStreamクラスを用意します。
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// バイトデータを書き込みます。
byteArrayOutputStream.write( 0x01 );
byteArrayOutputStream.write( 0x02 );
byteArrayOutputStream.write( 0x03 );
byteArrayOutputStream.write( 0xFF );
byteArrayOutputStream.write( 0x100 );
// 書き込まれたバイトデータをbyte型配列として取得します。
byte[] bytes = byteArrayOutputStream.toByteArray();
for( int iF1 = 0; iF1 < bytes.length; ++iF1 )
{
// 出力します。
System.out.println( "0x" + Integer.toHexString( bytes[iF1] ) + " ( " + bytes[iF1] + " )" );
}
// 0x1 ( 1 )
// 0x2 ( 2 )
// 0x3 ( 3 )
// 0xffffffff ( -1 )
// 0x0 ( 0 )
// このように、書き込んだバイトデータはbyte型配列として
// 取得できます。
// write()メソッドはint型を受け取りますが、
// ByteArrayOutputStreamクラスは「バイト出力ストリーム」ですので
// byte型のサイズにしてから書き込みます。
// ByteArrayOutputStreamクラスはclose()メソッドを
// 呼ぶ必要はありません。
}
}




