即使文件存在,FileNotFoundException也是如此

时间:2011-06-01 06:36:23

标签: java java.util.scanner filenotfoundexception

public StormAnalysis(){
    try {       
        fScanner = new Scanner(new File("tracks1949to2010_epa.txt"));
        while(fScanner.hasNextLine()){
            System.out.println(fScanner.nextLine());
        }
    } catch (FileNotFoundException e) {
        System.out.println("File not found. Try placing the tracks1949to2010_epa.txt in the same folder as StormAnalysis.java");    
        e.printStackTrace();
    }

}

以上是我的代码(我也有错误的图像: http://folk.uio.no/arnabkd/test/images/error-code-task.jpg

如您所见,txt文件与StormAnalysis.java文件位于同一文件夹中。此外,如果我将文件路径更改为“weather.dat”(这是另一个任务/问题),代码也可以工作。

任何想法都将受到赞赏!

3 个答案:

答案 0 :(得分:8)

该文件不存在。如果它不会抛出异常: - )

可能的罪魁祸首是工作目录与预期的不同(即当前工作目录不包含具有该名称的文件)。这可以通过使用文件的绝对路径并观察它是否正确加载来轻松验证。

或者,找到当前目录:

String cwd = new File(".").getAbsolutePath();

快乐的编码。

答案 1 :(得分:2)

默认情况下,Eclipse(仅)将类文件复制到bin\classes目录中(除非已将其更改为另一个目录),然后再运行Java应用程序。出于所有实际目的,此目录与输入文件所在的src目录不同。您必须在Eclipse中配置项目的构建属性,以将输入文件(或.txt类型的所有文件)复制到输出目录。这将使文件在类文件所在的同一目录中可用,从而可以读取文件。

答案 2 :(得分:0)

Eclipse cwd是Project文件夹,比bin和src高一级。

Directory of ...eclipse-workspace\File IO
05/30/2018  07:52 PM    <DIR>          bin
05/30/2018  07:48 PM               148 sample.txt
05/30/2018  07:46 PM    <DIR>          src

testFile = new File("Sample.txt");
System.out.println(testFile.getAbsolutePath());