はじめに
Javaでは、ファイルの読み書き操作は多くの場面で必要とされます。この記事では、BufferedReader
とBufferedWriter
を使って、テキストファイルを効率よく読み書きする方法を解説します。初心者から中級者まで役立つ基本と応用を押さえておきましょう。
ファイル読み込みの基本(BufferedReader)
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileExample {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader(\"sample.txt\"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
解説
FileReader
:ファイルを読み込むクラスBufferedReader
:行単位で高速に読み込むためのクラスtry-with-resources
:自動的にリソースをクローズ
ファイルへの書き込み(BufferedWriter)
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteFileExample {
public static void main(String[] args) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(\"output.txt\"))) {
writer.write(\"こんにちは、Javaファイル出力!\");
writer.newLine();
writer.write(\"2行目のテキストです。");
} catch (IOException e) {
e.printStackTrace();
}
}
}
解説
FileWriter
:文字ファイルへの書き込み用BufferedWriter
:バッファ付きで高速に書き込むnewLine()
:改行を挿入
応用:読み込んだ内容をそのまま別ファイルに書き出す
try (
BufferedReader reader = new BufferedReader(new FileReader(\"input.txt\"));
BufferedWriter writer = new BufferedWriter(new FileWriter(\"copy.txt\"))
) {
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
よくあるエラーと対処法
FileNotFoundException
:ファイルパスを見直すIOException
:書き込み権限やディスク容量に注意
まとめ
JavaのBufferedReader
とBufferedWriter
は、テキストファイルを効率よく読み書きするための基本クラスです。大規模なデータを扱う場合でも、高速かつ安定して動作します。ファイル操作は業務アプリやツール開発でも頻出なので、しっかり習得しておきましょう。