Java BufferedWriter:効率的な文字I/O解説
Java BufferedWriter
BufferedWriterクラス、その内部バッファリング、主要メソッド、実践コード例を解説します。
java.ioパッケージのBufferedWriterクラスは、別のWriterをラップして効率的な文字出力を提供します。データをメモリにバッファリングすることで、コストの高いディスクI/O操作を削減します。
BufferedWriterの仕組み
クラスは8,192文字の内部バッファ(デフォルトサイズ)を保持します。データを書き込むと、文字はまずこのバッファに格納されます。バッファが満杯になるかライターが閉じられると、内容が基盤ストリームにフラッシュされます。
この戦略によりディスク書き込み回数が最小化され、文字出力が著しく高速化されます。
BufferedWriterの作成
クラスをインポートし、FileWriter(または任意のWriter)をラップしてBufferedWriterを作成:
FileWriter file = new FileWriter("output.txt");
BufferedWriter buffer = new BufferedWriter(file);
バッファはデフォルト8,192文字ですが、カスタムサイズ指定も可能:
BufferedWriter buffer = new BufferedWriter(file, 16384); // 16KBバッファ
BufferedWriterのメソッド
write()
write(int c)– 1文字書き込みwrite(char[] cbuf)– 文字配列を書き込みwrite(String str)– 文字列を書き込み
例:ファイルへの書き込み
import java.io.FileWriter;
import java.io.BufferedWriter;
public class Main {
public static void main(String[] args) {
String data = "This is the data in the output file";
try {
FileWriter file = new FileWriter("output.txt");
BufferedWriter out = new BufferedWriter(file);
out.write(data);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
結果のoutput.txtには指定文字列が含まれます。
flush()
バッファされたデータを即座に基盤ストリームに書き出し強制:
out.flush(); // バッファされた文字をファイルに書き出し
close()
ライターを閉じ、システムリソースを解放。close()呼び出し後、ライターは再利用不能になります。
その他の便利なメソッド
| メソッド | 説明 |
|---|---|
newLine() | プラットフォーム固有の行区切り文字を挿入 |
append(char c) | 単一文字を追加 |
append(CharSequence csq) | 文字シーケンスを追加 |
完全なAPIは公式Java BufferedWriterドキュメントを参照。
Java
- Javaのfinalキーワード完全解説:変数、メソッド、クラスでの活用法
- Java instanceof演算子完全ガイド:基本から継承・インターフェースまで
- Java継承のマスター:概念、種類、実践例
- Java Staticネストクラスの理解:用法、違い、実例
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaシングルトンパターン完全解説:安全な実装と活用法
- Javaリフレクション完全ガイド:実行時のクラス・メソッド・フィールド検査
- Java ObjectOutputStream完全ガイド:シリアル化、メソッド、実践例
- Java BufferedReader完全ガイド:効率的な文字ストリーム処理
- Javaジェネリクス完全ガイド:再利用可能で型安全なコードの構築
- Javaファイル操作のマスター:java.ioによる作成・読み取り・書き込み・削除