繁体   English   中英

eclipse中的java.io.FileNotFoundException

[英]java.io.FileNotFoundException in eclipse

代码:

import java.io.*;
import java.util.Scanner;

public class Driver {

    private int colorStrength;
    private String color;

    public static void main(String[] args) throws IOException {

        String line, file = "strength.txt";

        File openFile = new File(file);
        Scanner inFile = new Scanner(openFile);

        while (inFile.hasNext()) {
            line = inFile.nextLine();
            System.out.println(line);
        }

        inFile.close();
    }
}

这是我为类编写的程序的一小部分(我知道尚未使用两个私有属性)但是当我尝试使用 strength.txt 文件运行它时,我收到以下错误:

例外:

Exception in thread "main" java.io.FileNotFoundException: strength.txt (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)
at Driver.main(Driver.java:14)

如果有 Eclipse 的人能帮我解决这个问题,我将不胜感激!

您使用了对于您的项目执行的相对文件路径。

如果您想这样做,只需将strength.txt文件放在项目的基本目录中。 像这样:

在此处输入图片说明

或者,您可以引用系统上的absolute文件路径。 例如,使用:

视窗:

C:/dev/myproject/strength.txt

Mac/Unix:

/Users/username/dev/strength.txt

(或任何可能的完整路径)。

做这个

System.out.println(openFile.getAbsolutePath());

它会告诉你 JVM 期望在哪里找到文件,以及它是否也是你期望的文件夹,相应地放置文件或给出确切的位置

使用它来查看系统用于到达相对路径的文件路径

    System.out.print(System.getProperty("user.dir"));

然后确保相对路径紧跟此路径。

你也可以把它变成一个字符串

String filePath = System.getProperty("user.dir");

然后你可以像这样将它添加到文件路径的开头,

    ImageIcon imageIconRefVar = new ImageIcon(filePath + "/imagepathname");

当我在路径中使用它时,我发现这为我解决了这个问题(这看起来很奇怪,因为它应该是它所在的位置,但它有效)

您使用了相对于您的项目执行的相对文件路径。

如果这对您有用,您可以通过以下方式将执行目录从项目根目录更改为二进制目录:

  1. “运行”->“运行配置”
  2. 在“参数”选项卡中,找到“工作目录”设置。
  3. 从“默认”切换到“其他”。
  4. 单击“工作区”按钮,在弹出的窗口中选择项目,然后单击“确定”; 这会给你带来类似$(workspace_loc:proj-1)
  5. 将“/bin”附加到它的末尾; 保存配置。

我需要这个而不是在我做作业时简单地将文件放在项目根目录中,而教授需要特定的文件层次结构; 此外,这比绝对路径更便携。

在基本目录中创建一个文件夹,将其命名为“res”。 将您的文件放在“res”文件夹中。

使用String file = ".\\\\res\\\\strength.txt"; 以引用文件的位置。

您应该使用资源文件夹来存储您在程序中使用的所有文件(一种很好的做法)。

并从您的根目录引用该文件。 所以该文件存在于包中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM