eclipse中的java.io.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文件运行它时,我收到以下错误:
例外:
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.(Unknown Source) at java.util.Scanner.(Unknown Source) at Driver.main(Driver.java:14)
如果有人用Eclipse可以帮我解决这个问题,我将不胜感激!
您使用了相对于项目执行的相对文件路径。
如果您想这样做,只需将strength.txt
文件放在项目的基目录中即可。 像这样:
或者,您可以引用系统上的absolute
文件路径。 例如,使用:
视窗:
C:/dev/myproject/strength.txt
苹果/ 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");
当我在路径中使用它时,我发现这解决了我的问题(这看起来很奇怪,因为它应该是它所在的位置,但它有效)
您使用了相对于项目执行的相对文件路径。
如果这适合您,您可以通过以下方式将执行目录从项目根目录更改为二进制目录:
- “运行” – >“运行配置”
- 在“参数”选项卡中,找到“工作目录”设置。
- 从“默认”切换到“其他”。
- 单击“工作区”按钮,在弹出窗口中选择项目,然后单击“确定”; 这将带给你像
$(workspace_loc:proj-1)
。 - 在其末尾添加“/ bin”; 保存配置。
我需要这个,而不是简单地将文件放在项目根目录中,当我做任务时,教授需要特定的文件层次结构; 另外,这比绝对路径更便携。
在基本目录中创建一个文件夹,将其命名为“res”。 将文件放在“res”文件夹中。
使用String file = ".\\res\\strength.txt";
引用文件的位置。
您应该使用资源文件夹来存储您在程序中使用的所有文件(一个好的做法)。
并从根目录中引用该文件。 因此该文件存在于包中。