0

ファイルを開いてスキャンしてトークンを出力したいのですが、次のエラーが表示されます: unreported exception java.io.FileNotFoundException; Scanner stdin = new Scanner (file1); スローされるようにキャッチまたは宣言する必要があります。ファイルは適切な名前の同じフォルダーにあります。

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

   public class myzips {

           public static void main(String[] args) {

                  File file1 = new File ("zips.txt");

                  Scanner stdin = new Scanner (file1);

                  String str = stdin.next();

                  System.out.println(str);
          }
  }   
4

2 に答える 2

3

使用しているコンストラクターはScanner、コンパイル時にキャッチする必要があるFileNotFoundExceptionをスローします。

public static void main(String[] args) {

    File file1 = new File ("zips.txt");
    try (Scanner stdin = new Scanner (file1);){
        String str = stdin.next();

        System.out.println(str);
    } catch (FileNotFoundException e) {
        /* handle */
    } 
}

括弧内にスキャナーを宣言してインスタンス化する上記の表記はtry、Java 7でのみ有効な表記です。これはclose()、try-catchブロックを離れるときに、Scannerオブジェクトを呼び出しでラップします。あなたはここでそれについてもっと読むことができます。

于 2013-02-08T16:57:50.103 に答える
3

ファイルはありますが、そうでない場合があります。FileNotFoundException次のように、メソッドがをスローする可能性があることを宣言する必要があります。

public static void main(String[] args) throws FileNotFoundException { ... }

try -- catchまたは、次のようにブロックを追加する必要があります。

Scanner scanner = null;
try {
  scanner = new Scanner(file1);
catch (FileNotFoundException e) {
  // handle it here
} finally {
  if (scanner != null) scanner.close();
}
于 2013-02-08T16:58:45.757 に答える