019 例外と例外処理(リソース管理とクローズ可能なリソース) 025 解答例

理想的な解答例は以下のようになります。この例では、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());
            }
        }
    }
}

このプログラムでは、ScannerBufferedReadertry-with-resourcesを使用しています。BufferedReader内のreadLine()メソッドを使用してファイルを行単位で読み取り、コンソールに表示しています。また、ファイルが見つからない場合や読み取りエラーが発生した場合も適切に処理しています。

try-with-resourcesを使用することで、ScannerBufferedReaderはブロックを抜ける際に自動的にクローズされ、クリーンなリソース管理が行われます。

「019 例外と例外処理」問題集リスト