Java BufferedOutputStream クラス
Java BufferedOutputStream クラス
このチュートリアルでは、例を使用して Java BufferedOutputStream とそのメソッドについて学習します。
BufferedOutputStream
java.io
のクラス package を他の出力ストリームと共に使用して、データ (バイト単位) をより効率的に書き込みます。
OutputStream
を拡張します 抽象クラス。
BufferedOutputStream の働き
BufferedOutputStream
8192 バイトの内部バッファを維持します .
書き込み操作中、バイトはディスクではなく内部バッファに書き込まれます。バッファがいっぱいになるか、ストリームが閉じられると、バッファ全体がディスクに書き込まれます。
したがって、ディスクへの通信回数が減少します。 BufferedOutputStream
を使用するとバイトの書き込みが高速になるのはこのためです。 .
BufferedOutputStream を作成する
BufferedOutputStream
を作成するには 、 java.io.BufferedOutputStream
をインポートする必要があります 最初にパッケージ。ここでパッケージをインポートしたら、出力ストリームを作成する方法を説明します。
// Creates a FileOutputStream
FileOutputStream file = new FileOutputStream(String path);
// Creates a BufferedOutputStream
BufferedOutputStream buffer = new BufferOutputStream(file);
上記の例では、BufferdOutputStream
を作成しました。 名前付き バッファ FileOutputStream
で 名前付き ファイル .
ここで、内部バッファのデフォルト サイズは 8192 バイトです。ただし、内部バッファーのサイズも指定できます。
// Creates a BufferedOutputStream with specified size internal buffer
BufferedOutputStream buffer = new BufferOutputStream(file, int size);
バッファ より速くファイルにバイトを書き込むのに役立ちます。
BufferedOutputStream のメソッド
BufferedOutputStream
クラスは OutputStream
のさまざまなメソッドの実装を提供します クラス。
write() メソッド
write()
- 出力ストリームの内部バッファに 1 バイトを書き込みますwrite(byte[] array)
- 指定された配列のバイトを出力ストリームに書き込みますwrite(byte[] arr, int start, int length)
- length に等しいバイト数を書き込みます 位置 start から始まる配列から出力ストリームへ
例:ファイルにデータを書き込むための BufferedOutputStream
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
public class Main {
public static void main(String[] args) {
String data = "This is a line of text inside the file";
try {
// Creates a FileOutputStream
FileOutputStream file = new FileOutputStream("output.txt");
// Creates a BufferedOutputStream
BufferedOutputStream output = new BufferedOutputStream(file);
byte[] array = data.getBytes();
// Writes data to the output stream
output.write(array);
output.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}
上記の例では、output という名前のバッファリングされた出力ストリームを作成しました。 FileOutputStream
とともに .出力ストリームはファイル output.txt にリンクされています .
FileOutputStream file = new FileOutputStream("output.txt");
BufferedOutputStream output = new BufferedOutputStream(file);
ファイルにデータを書き込むために、 write()
を使用しました メソッド。
ここでプログラムを実行すると、output.txt ファイルには次の内容が含まれています。
This is a line of text inside the file.
注意 :getBytes()
プログラムで使用されるメソッドは、文字列をバイト配列に変換します。
flush() メソッド
内部バッファをクリアするには、 flush()
を使用できます 方法。このメソッドは、出力ストリームがバッファ内に存在するすべてのデータを宛先ファイルに書き込むように強制します。たとえば、
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
public class Main {
public static void main(String[] args) {
String data = "This is a demo of the flush method";
try {
// Creates a FileOutputStream
FileOutputStream file = new FileOutputStream(" flush.txt");
// Creates a BufferedOutputStream
BufferedOutputStream buffer = new BufferedOutputStream(file);
// Writes data to the output stream
buffer.write(data.getBytes());
// Flushes data to the destination
buffer.flush();
System.out.println("Data is flushed to the file.");
buffer.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
出力
Data is flushed to the file.
プログラムを実行すると、ファイル flush.txt 文字列 data で表されるテキストで埋められます .
close() メソッド
バッファリングされた出力ストリームを閉じるには、 close()
を使用できます 方法。メソッドが呼び出されると、出力ストリームを使用してデータを書き込むことはできません。
詳細については、Java BufferedOutputStream (Java の公式ドキュメント) を参照してください。
Java