019 例外と例外処理(複数の例外の処理) 013 解答例

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FileReadProgram {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        try {
            // ユーザーにファイル名を入力してもらう
            System.out.print("ファイル名を入力してください: ");
            String fileName = scanner.nextLine();

            // 入力されたファイル名を使用してFileオブジェクトを作成し、存在チェック
            File file = new File(fileName);

            if (!file.exists()) {
                // ファイルが存在しない場合の例外処理
                throw new FileNotFoundException("エラー: 指定されたファイルが存在しません。");
            }

            // ファイルが存在する場合は内容を表示
            Scanner fileScanner = new Scanner(file);

            System.out.println("ファイルの内容:");

            while (fileScanner.hasNextLine()) {
                System.out.println(fileScanner.nextLine());
            }

            // ファイルの読み込みが終わったらファイルScannerをクローズ
            fileScanner.close();

        } catch (FileNotFoundException e) {
            // ファイルが存在しない場合の例外処理
            System.out.println(e.getMessage());

        } finally {
            // Scannerのクローズ
            scanner.close();
        }
    }
}

このプログラムでは、Scanner クラスを使用してユーザーにファイル名を入力してもらいます。入力されたファイル名を使用して File オブジェクトを作成し、exists() メソッドを使用してファイルの存在を確認します。

ファイルが存在しない場合には FileNotFoundException をスローし、その他の場合はファイルの内容を表示します。最後に finally ブロックで Scanner をクローズしています。

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