首页 > 解决方案 > 即使文件存在并且在同一目录中,Java FileNotFound 错误?我该如何解决?

问题描述

我正在尝试从 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();
}

在此处输入图像描述

标签: java

解决方案


如果您看到错误,它会说

无法编译的源代码 - 未报告的异常 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();
}

推荐阅读