Java ByteArrayOutputStream クラス
Java ByteArrayOutputStream クラス
このチュートリアルでは、例を使用して Java ByteArrayOutputStream とそのメソッドについて学習します。
ByteArrayOutputStream
java.io
のクラス パッケージを使用して、出力データの配列 (バイト単位) を書き込むことができます。
OutputStream
を拡張します 抽象クラス。
注意 :ByteArrayOutputStream
で データを格納するためのバイトの内部配列を維持します。
ByteArrayOutputStream を作成する
バイト配列出力ストリームを作成するには、java.io.ByteArrayOutputStream
をインポートする必要があります 最初にパッケージ。パッケージをインポートしたら、出力ストリームを作成する方法を次に示します。
// Creates a ByteArrayOutputStream with default size
ByteArrayOutputStream out = new ByteArrayOutputStream();
ここでは、デフォルト サイズ 32 バイトのバイト配列にデータを書き込む出力ストリームを作成しました。ただし、配列のデフォルト サイズは変更できます。
// Creating a ByteArrayOutputStream with specified size
ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
ここでは、サイズ 配列の長さを指定します。
ByteArrayOutputStream のメソッド
ByteArrayOutputStream
クラスは、OutputStream
に存在するさまざまなメソッドの実装を提供します クラス。
write() メソッド
write(int byte)
- 指定されたバイトを出力ストリームに書き込みますwrite(byte[] array)
- 指定された配列のバイトを出力ストリームに書き込みますwrite(byte[] arr, int start, int length)
- length に等しいバイト数を書き込みます 位置 start から始まる配列から出力ストリームへwriteTo(ByteArrayOutputStream out1)
- 現在の出力ストリームのデータ全体を指定された出力ストリームに書き込みます
例:データを書き込む ByteArrayOutputStream
import java.io.ByteArrayOutputStream;
class Main {
public static void main(String[] args) {
String data = "This is a line of text inside the string.";
try {
// Creates an output stream
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] array = data.getBytes();
// Writes data to the output stream
out.write(array);
// Retrieves data from the output stream in string format
String streamData = out.toString();
System.out.println("Output stream: " + streamData);
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
出力
Output stream: This is a line of text inside the string.
上記の例では、output という名前のバイト配列出力ストリームを作成しました。 .
ByteArrayOutputStream output = new ByteArrayOutputStream();
データを出力ストリームに書き込むために、 write()
を使用しました メソッド。
注意 :getBytes()
プログラムで使用されるメソッドは、文字列をバイト配列に変換します。
ByteArrayOutputStream からデータにアクセス
toByteArray()
- 出力ストリーム内に存在する配列を返しますtoString()
- 出力ストリームのデータ全体を文字列形式で返します
たとえば、
import java.io.ByteArrayOutputStream;
class Main {
public static void main(String[] args) {
String data = "This is data.";
try {
// Creates an output stream
ByteArrayOutputStream out = new ByteArrayOutputStream();
// Writes data to the output stream
out.write(data.getBytes());
// Returns an array of bytes
byte[] byteData = out.toByteArray();
System.out.print("Data using toByteArray(): ");
for(int i=0; i<byteData.length; i++) {
System.out.print((char)byteData[i]);
}
// Returns a string
String stringData = out.toString();
System.out.println("\nData using toString(): " + stringData);
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
出力
Data using toByteArray(): This is data. Data using toString(): This is data.
上記の例では、toByteArray()
によって返されたデータを格納するためのバイト配列を作成しました。 メソッド。
次に、for ループを使用して配列の各バイトにアクセスしました。ここでは、型キャストを使用して、各バイトが対応する文字に変換されます。
close() メソッド
出力ストリームを閉じるには、 close()
を使用できます メソッド。
ただし、close()
メソッドは ByteArrayOutputStream
では効果がありません クラス。 close()
の後でも、このクラスのメソッドを使用できます。 メソッドが呼び出されます。
ByteArrayOutputStream のその他のメソッド
メソッド | 説明 |
---|---|
size() | 出力ストリーム内の配列のサイズを返します |
flush() | 出力ストリームをクリアします |
詳細については、Java ByteArrayOutputStream (公式の Java ドキュメント) を参照してください。
Java