Java BufferedReader完全ガイド:効率的な文字ストリーム処理
Java BufferedReaderクラス
BufferedReaderクラスが実例と詳細なメソッド説明でJavaのI/Oパフォーマンスを向上させる仕組みを解説します。
java.ioパッケージのBufferedReaderクラスは、別のReaderをラップして効率的な文字入力を提供します。データのチャンクを内部バッファに読み込むことで、高コストなディスクI/O操作を最小化します。
BufferedReaderの仕組み
内部的にBufferedReaderは8,192文字のバッファ(デフォルトサイズ)を保持します。読み取り操作時に、ソースファイルから文字ブロックが取得されこのバッファに格納されます。以降の読み取りはバッファから文字を1つずつ取り出すため、ディスクアクセス回数が大幅に削減されI/Oが高速化されます。
BufferedReaderの作成
BufferedReaderを使用するには、java.ioからインポートし、FileReaderなど任意のReader実装をラップ:
import java.io.FileReader;
import java.io.BufferedReader;
FileReader file = new FileReader("example.txt");
BufferedReader reader = new BufferedReader(file);
カスタムバッファサイズも指定可能:
BufferedReader reader = new BufferedReader(file, 16384); // 16KBバッファ
BufferedReaderの主要メソッド
read()
int read()– バッファから1文字読み取りint read(char[] cbuf)– 文字を供給配列に読み取りint read(char[] cbuf, int off, int len)– 最大len文字をオフセットoffから配列に読み取り
例:input.txtの全内容を文字配列に読み取り:
import java.io.FileReader;
import java.io.BufferedReader;
class Main {
public static void main(String[] args) {
char[] buffer = new char[100];
try (FileReader file = new FileReader("input.txt");
BufferedReader reader = new BufferedReader(file)) {
reader.read(buffer);
System.out.println("ファイル内のデータ:\n" + new String(buffer));
} catch (Exception e) {
e.printStackTrace();
}
}
}
出力
ファイル内のデータ: This is a line of text inside the file.
skip()
skip(long n)メソッドはストリームから次のn文字を破棄:
reader.skip(5); // "This "をスキップ
スキップ後、残りコンテンツを読み取ると:
5文字スキップ後のデータ: is a line of text inside the file.
close()
システムリソースを解放するため常にリーダーを閉じます:
reader.close();
その他の便利なメソッド
| メソッド | 説明 |
|---|---|
ready() | ブロックせずに読み取り可能かチェック |
mark(int readAheadLimit) | ストリームの現在位置をマーク |
reset() | ストリームを最新のマーク位置にリセット |
完全なリファレンスは公式Javaドキュメントを参照。
Java
- Javaのfinalキーワード完全解説:変数、メソッド、クラスでの活用法
- Java instanceof演算子完全ガイド:基本から継承・インターフェースまで
- Java継承のマスター:概念、種類、実践例
- Java Staticネストクラスの理解:用法、違い、実例
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaシングルトンパターン完全解説:安全な実装と活用法
- Javaリフレクション完全ガイド:実行時のクラス・メソッド・フィールド検査
- Java ObjectOutputStream完全ガイド:シリアル化、メソッド、実践例
- Javaジェネリクス完全ガイド:再利用可能で型安全なコードの構築
- Javaファイル操作のマスター:java.ioによる作成・読み取り・書き込み・削除
- Java BufferedReader でファイル読み込み:実践ガイドと例