理想的な解答例は以下のようになります。この例では、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はブロックを抜ける際に自動的にクローズされ、クリーンなリソース管理が行われます。


