我是Java新手。在我的课程中,我们必须使用Scanner对象输入现有文件。
import java.io.*;
import java.util.Scanner;
public class InputFile {
public static void main(String[] args) {
Scanner inFile;
public class InputFile {
public static void main(String[] args) {
Scanner inFile = new Scanner(new File("artwork_info.txt"));
int quantity = new Integer(inFile.nextLine());
}
}
这给了“我未报告的异常FileNotFoundException”。
try {
inFile = new Scanner(new File("info.txt"));
} catch (FileNotFoundException e) {
System.out.println("Try Again");
}
int quantity = new Integer(inFile.nextLine());
然后我收到错误,可能没有初始化inFile。
我走过This question的步骤,文件名是正确的,仍然是同样的问题。有任何想法吗?
答案 0 :(得分:1)
第一种方式:添加throws
:
public static void main(String[] args) throws FileNotFoundException {
第二种方式:将int quantity = ...
行(和后续语句)放在try
块中:
try {
inFile = new Scanner(new File("info.txt"));
int quantity = new Integer(inFile.nextLine());
// ...
} catch (FileNotFoundException e) {
// ...
}
第一种方式比第二种方式更好,如果你实际上不会做任何事情"有趣"但有例外,因为它不会不必要地使用inFile
缩进代码。
第三种方式:
Scanner inFile;
try {
inFile = new Scanner(new File("info.txt"));
} catch (FileNotFoundException e) {
System.out.println("Try Again");
return;
}
int quantity = new Integer(inFile.nextLine());
答案 1 :(得分:0)
您正在直接访问该文件,这意味着您的Java文件必须在 artwork_info.txt 所在的同一位置工作,如果您将此文件放在嵌套目录中,那么您将获得 FileNotFoundException异常即可。 因此,如果 txt 文件位于文件夹中,则必须提供文件夹名称>>
您已用作
Scanner inFile = new Scanner(new File("artwork_info.txt"));
将其替换为
Scanner inFile = new Scanner(new File("YourFolderPath\artwork_info.txt"));
在你的情况下,你得到 FileNotFoundException ,这意味着你的程序无法检测到你提供的文件,这意味着它明显存在 FileName 或 ExtentionName 或 NestedDirectory 。
尝试解决这个问题,你可以摆脱它,Gud Luck !!