当前位置: 首页 > 知识库问答 >
问题:

FileNotFoundException(即使文件存在)[重复]

房冥夜
2023-03-14
    String curDir = System.getProperty("user.dir");
    System.out.println(curDir);

    File f = new File("/home/brian/workspace/Color Sampler/src/Data.txt");
    if(f.exists() && !f.isDirectory()) { System.out.println("success"); }

    Scanner input = new Scanner(new File("/home/brian/workspace/Color Sampler/src/Data.txt"));
/home/brian/workspace/Color Sampler
success
/home/brian/workspace/Color Sampler
/home/brian/workspace/Color Sampler/src
/home/brian/workspace/Color Sampler/bin

尽管如此,我还是得到了例外。我已经用上面的三个文件进行了尝试。该文件也没有在任何地方打开,所以它应该是可读的。我已经花了一个多小时在一个简单的文件名规范上,所以我在这一点上非常紧张。

这里有个例外:

Exception in thread "AWT-EventQueue-1" java.lang.Error: Unresolved compilation problem: 
Unhandled exception type FileNotFoundException

at WindowDestroyer.windowOpened(WindowDestroyer.java:46)
at java.awt.Window.processWindowEvent(Window.java:1972)
at javax.swing.JFrame.processWindowEvent(JFrame.java:290)
at java.awt.Window.processEvent(Window.java:1933)
at java.awt.Component.dispatchEventImpl(Component.java:4649)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Window.dispatchEventImpl(Window.java:2588)
at java.awt.Component.dispatchEvent(Component.java:4475)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:675)
at java.awt.EventQueue.access$300(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:634)
at java.awt.EventQueue$2.run(EventQueue.java:632)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:119)
at java.awt.EventQueue$3.run(EventQueue.java:648)
at java.awt.EventQueue$3.run(EventQueue.java:646)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:645)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

共有1个答案

徐佐
2023-03-14

您的问题不是找不到文件,而是您没有处理可能的FileNotFoundException

或者将代码更改为:

try (Scanner input = new Scanner(new File("/home/brian/workspace/Color Sampler/src/Data.txt"))) {
    // read file and all
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

或者向方法添加throws子句:

public void method() throws FileNotFoundException {

}
 类似资料:
  • 我有一个应用程序,它在根文件夹的lib文件夹中加载一个jar文件,当我把这个根文件夹放在C:\或C:\someFolder中时,它工作得很好,但当我把它放在“程序文件(x86)”中时,它返回了FileNotFoundException,即使在管理模式下已经存在并正在运行cmd。 我得到System.out.println来调试信息并返回正确的路径。 从应用程序中使用println的Stacktra

  • 问题内容: 上面是我的代码(并且我也有错误的图片:http : //folk.uio.no/arnabkd/test/images/error-code- task.jpg 如您所见,该txt文件与StormAnalysis.java文件位于同一文件夹中。另外,如果我将文件路径更改为“ weather.dat”(作为另一个任务/问题给出),该代码将起作用。 任何想法将不胜感激! 问题答案: 该文件

  • 问题内容: 我正在创建一个小程序,该程序将读取一个文本文件,其中包含大量随机生成的数字,并产生诸如均值,中位数和众数之类的统计信息。我已经创建了文本文件,并确保在声明为新文件时名称完全相同。 是的,该文件与类文件位于同一文件夹中。 } 错误行的内容如下: 问题答案: 如何添加: 打印出来。它会告诉您当前的工作目录是什么。然后,您应该能够看到为什么找不到文件。 除了找不到代码之外,您还可以检查以允许

  • 问题内容: 我有一个非常奇怪的问题,我正在尝试使用一些Java代码和JLayer播放一些MP3。我有一个方法设置来生成文件路径,但这给我带来了很多痛苦。这是return语句(以及该方法涉及的所有代码): 我有一组大约150个mp3文件,它们分别名为1.mp3、2.mp3等。它们最多可达156个(之间缺少一些文件)。根据用户输入的3位数代码,它会播放一种声音。这段代码可以 完美地 工作在1-99之间

  • 我在CS课上有一个作业,它说要阅读一个包含几个考试分数的文件,并要求我对它们进行求和和平均。虽然求和和平均很容易,但我在文件读取方面遇到了问题。讲师说要使用这个语法 但是,这会抛出,但是我已经反复检查了该文件是否存在于当前文件夹中,在此之后,我认为它必须使用权限执行某些操作。我更改了每个人的读写权限,但它仍然不起作用,它仍然抛出错误。有人知道为什么会发生这种情况吗? 编辑:它实际上指向了一个目录,