我想打开一个文件并扫描它以打印它的标记,但是我收到错误:未报告的异常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);
}
}
答案 0 :(得分: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中的有效表示法。当您离开时,它的作用是将您的Scanner对象包裹close()
try-catch块。您可以阅读更多相关信息here。
答案 1 :(得分: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();
}