eclipse中的java.io.FileNotFoundException

时间:2014-04-10 03:33:23

标签: java eclipse filenotfoundexception

代码:

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文件运行它时,我收到以下错误:< / p>

例外:

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可以帮我解决这个问题,我将不胜感激!

5 个答案:

答案 0 :(得分:13)

您已使用与项目执行相关的相对文件路径。

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

enter image description here

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

视窗:

C:/dev/myproject/strength.txt

的Mac / Unix的:

/Users/username/dev/strength.txt

(或任何完整路径)。

答案 1 :(得分:3)

这样做

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

它将显示JVM期望找到该文件的位置以及它是否是您期望的文件夹,相应地放置文件或给出确切的位置

答案 2 :(得分:2)

使用此选项可查看系统用于访问相对路径的文件路径

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

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

您也可以通过

将其转换为字符串
String filePath = System.getProperty("user.dir");

然后您可以将其添加到文件路径的开头,如此,

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

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

答案 3 :(得分:1)

  

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

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

  1. &#34;运行&#34; - &GT; &#34;运行配置&#34;
  2. 在&#34;参数&#34;选项卡,查找&#34;工作目录&#34;设置。
  3. 从&#34;默认&#34;切换到&#34;其他&#34;。
  4. 点击&#34;工作区&#34;按钮并在弹出窗口中选择项目,然后单击&#34;确定&#34 ;;这会给你带来$(workspace_loc:proj-1)
  5. 之类的东西
  6. 追加&#34; / bin&#34;到最后;保存配置。
  7. 我需要这个,而不是简单地将文件放在项目根目录中,当我做任务时教授需要特定的文件层次结构;另外,这比绝对路径更便携。

答案 4 :(得分:0)

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

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

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

从根目录中引用该文件。因此该文件存在于包中。