理想的な解答例は以下のようになります。この例では、try-with-resources
を使用してBufferedReader
を開き、ファイルの内容を読み取り、最後にクローズされることを確認しています。
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class FileReadExample {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
System.out.println("ファイルのパスを入力してください: ");
String filePath = scanner.nextLine();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (FileNotFoundException e) {
System.err.println("ファイルが見つかりません: " + e.getMessage());
} catch (IOException e) {
System.err.println("ファイルの読み取りエラー: " + e.getMessage());
}
}
}
}
このプログラムでは、Scanner
もBufferedReader
もtry-with-resources
を使用しています。BufferedReader
内のreadLine()
メソッドを使用してファイルを行単位で読み取り、コンソールに表示しています。また、ファイルが見つからない場合や読み取りエラーが発生した場合も適切に処理しています。
try-with-resources
を使用することで、Scanner
とBufferedReader
はブロックを抜ける際に自動的にクローズされ、クリーンなリソース管理が行われます。