java - 即使文件存在并且在同一目录中,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.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();
}
推荐阅读
- azure - Join Active Directory on a DC VM in azure
- javascript - 如何使用Javascript根据元素的颜色更改ID
- c# - 使用多个搜索项和一次迭代在字符串中查找索引
- git - CircleCI 构建到 cPanel 得到“似乎不是 git 存储库”错误
- ios - 在其中一个页面中包含的 UISwitch 上开始触摸时禁用 UIPageViewController 滚动
- magento2 - 如何在迷你购物车图标上提供页面链接以查看购物车和结帐
- typescript - Use promise or Async await in Firebase Cloud function for Http Request with Typescript
- d3.js - 如何将过滤结果添加到选择菜单
- python - Selenium RC and Python 2 remote control
- post - how to set a post method in bonita to submit external forms