ファイルの読み込み
ファイル全体を1行でStringに読み込む。
コード比較
✕ Java 8
StringBuilder sb = new StringBuilder();
try (BufferedReader br =
new BufferedReader(
new FileReader("data.txt"))) {
String line;
while ((line = br.readLine()) != null)
sb.append(line).append("\n");
}
String content = sb.toString();
✓ Java 11+
String content =
Files.readString(Path.of("data.txt"));
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
1行で完結
BufferedReaderの8行のボイラープレートを置き換えます。
自動クリーンアップ
ファイルハンドルは自動的にクローズされます。
UTF-8がデフォルト
デフォルトで正しいエンコーディング — 文字セットの混乱なし。
旧来のアプローチ
BufferedReader
モダンなアプローチ
Files.readString()
JDKバージョン
11
難易度
初級
JDKサポート
ファイルの読み込み
利用可能
JDK 11(2018年9月)以降、広く利用可能
仕組み
Files.readString()はファイルの全内容をStringに読み込みます。エンコーディング(デフォルトはUTF-8)とリソースのクリーンアップを自動で処理します。大きなファイルには遅延ストリーミングのためにFiles.lines()を使用します。
関連ドキュメント