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可以帮我解决这个问题,我将不胜感激!
答案 0 :(得分:13)
您已使用与项目执行相关的相对文件路径。
如果您想这样做,只需将strength.txt
文件放在项目的基目录中即可。像这样:
或者,您可以引用系统上的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)
您使用了与项目执行相关的相对文件路径。
如果这对您有用,您可以通过以下方式将执行目录从项目根目录更改为二进制目录:
$(workspace_loc:proj-1)
。我需要这个,而不是简单地将文件放在项目根目录中,当我做任务时教授需要特定的文件层次结构;另外,这比绝对路径更便携。
答案 4 :(得分:0)
在基本目录中创建一个文件夹,将其命名为&#34; res&#34;。将您的文件放在&#34; res&#34;文件夹中。
使用String file = ".\\res\\strength.txt";
来引用文件的位置。
您应该使用资源文件夹存储您在程序中使用的所有文件(这是一种很好的做法)。
从根目录中引用该文件。因此该文件存在于包中。