我的netbeans“/ build / classes”目录中有一个.txt文件(“file.txt”)。
在相同的目录中,为以下代码编译了.class文件:
try {
File f = new File("file.txt");
Scanner sc = new Scanner(f);
}
catch (IOException e) {
System.out.println(e);
}
调试代码(“Scanner sc ..”中的断点)启动异常并打印以下内容:
java.io.FileNotFoundException:file.txt(系统找不到 指定文件)
我也尝试使用“/file.txt”和“//file.txt”但结果相同。
提前感谢您提供任何提示
答案 0 :(得分:7)
如果您只使用new File("pathtofile")
该路径相对于您当前的工作目录,那么这完全不是您的类文件所在。
如果您确定该文件位于类路径的某个位置,则可以改为使用以下模式:
URL path = ClassLoader.getSystemResource("file.txt");
if(path==null) {
//The file was not found, insert error handling here
}
File f = new File(path.toURI());
答案 1 :(得分:2)
JVM将在当前工作目录中查找该文件。
这取决于您的IDE设置(程序的执行方式)。
要找出 所需的file.txt
,你可以做到
System.out.println(new File("."));
如果它例如输出
/some/path/project/build
您应该将file.txt
放在构建目录中(或指定相对于构建目录的正确路径)。
答案 2 :(得分:1)
尝试:
File f = new File("./build/classes/file.txt");
答案 3 :(得分:0)
Use "." to denote the current directory
String path = "./build/classes/file.txt";
File f = new File(path);
答案 4 :(得分:0)
文件对象加载,在其当前目录中寻找匹配项...。直接位于项目文件夹中,而不是源文件中加载类文件.....直接将文件放在项目文件夹中>