文件未找到[Java]

问题描述:

我有一个任务,我们有几个给出的类,其中之一是一个filereader类,它有一个读取文件的方法,并用包含文件的参数(String)调用它路径,现在我有几个.txt文件,它们和.java文件在同一个文件夹中,所以我认为我可以将file.txt作为文件路径传递(就像在php中一样),但总是返回一个文件没有发现异常!文件未找到[Java]

看到给定的类应该正常工作的事实,并且我证实这些类实际上与.java文件位于相同的文件夹workspace/src中,我必须对filepath String做一些错误的操作,但是什么?

private static final String fileF = "File.txt"; 
private static final ArrayList<String[]> instructionsF = 
CreatureReader.readInstructions(fileF); 

这是我的代码,

感谢您的帮助

+1

这不能是你的所有代码,因为它不是一个有效的Java类。请用能够重现问题的最小可执行代码更新问题。您至少应该包含Java文件IO调用。 – 2010-12-02 21:24:01

+3

这不是关于.java文件的位置,当前工作目录是您从中运行可执行文件的位置。 – Falmarri 2010-12-02 21:24:47

把这个:

File here = new File("."); 
System.out.println(here.getAbsolutePath()); 

在你的代码的某个地方。它会打印出你的程序的当前目录。

然后,只需将文件放在那里,或更改文件路径。

有两件事情需要注意:

  1. 检查,如果 “FILE.TXT” 的真名叫这样的,因为它不会找到“file.txt” - >大小写敏感问题!
  2. 如果使用相对文件名(不包括整个目录),文件将不会被发现,这是不是在你的类路径 - >尽量把它放在你的.class文件生成

所以:如果你有一个名为/home/javatest/File.txt的文件,你的源代码在/home/javatest/和你的.class文件在同一目录中,你的代码应该可以正常工作。

如果您的课程在包装中,而且您已将这些文件作为兄弟姐妹放置,那么您的路径必须包含包装路径。正如其他答案中所建议的那样,打印出工作目录的路径以确定Java在哪里查找相关文件。