我正在尝试从Java文本文件中读取一些数字以定义一些形状并在GUI窗口中显示它们,但是每次我尝试运行代码并将值导入到文本文件中时,都会引发FileNotFoundException即使该文件位于同一目录中并且存在并且可以正常打开。
下面插入的代码和项目的文件结构。
请问有关如何解决此问题的任何想法?非常感谢。
我已经检查了文件实际存在的位置,是否打开了文件并显示了它也存在的数据,以及文件没有损坏(不是)。
public static void addShapes(){
BounceBox box = new BounceBox(700,500);
FileInputStream fileIn = new FileInputStream("ex3.txt");
Scanner scan = new Scanner(fileIn);
box.start();
}
答案 0 :(得分:3)
如果您看到错误,则提示
不可编译的源代码-未报告的异常java.io.FileNotFoundException;必须被抓住或宣布要扔掉
这意味着它不是找不到文件的运行时异常,而是编译时异常。这是由于以下行:
FileInputStream fileIn = new FileInputStream("ex3.txt");
这意味着该行有FileNotFoundException
的可能性,并且应将其添加到方法签名中,如下所示:
public static void addShapes() throws FileNotFoundException {
BounceBox box = new BounceBox(700,500);
FileInputStream fileIn = new FileInputStream("ex3.txt");
Scanner scan = new Scanner(fileIn);
box.start();
}
或者该行应被try-catch
块包围,并捕获FileNotFoundException
,如下所示:
public static void addShapes(){
BounceBox box = new BounceBox(700,500);
try {
FileInputStream fileIn = null;
fileIn = new FileInputStream("ex3.txt");
Scanner scan = new Scanner(fileIn);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
box.start();
}
答案 1 :(得分:1)
public static void addShapes() {
BounceBox box = new BounceBox(700,500);
try {
FileInputStream fileIn = new FileInputStream("ex3.txt");
Scanner scan = new Scanner(fileIn);
} catch(FileNotFoundException e) {
e.printStackTrace();
}
box.start();
}
答案 2 :(得分:0)
您将收到“未报告的异常”,这意味着您的代码可以引发异常(这是FileNotFound异常),并且您没有捕获该异常。因此,请在代码中加入try-catch。
FileInputStream fileIn = null;
try {
fileIn = new FileInputStream("ex3.txt");
} catch (FileNotFoundException ex) {
// catch your exception here.
}
Scanner scan = new Scanner(fileIn);
答案 3 :(得分:0)
我今天遇到了同样的问题,我花了大约两个小时才能部分弄清这个问题。真烦人。根据类代码的结构,Java不允许您读取方法定义中的文本文件。尝试在main方法中读取它,然后将该对象(FileInputStream)用作addShapes()方法的输入。 让我知道它是否有效:)