即使文件存在,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”(作为另一个任务/问题),代码也可以工作。

任何想法将不胜感激!

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

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

或者,要查找当前目录:

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

快乐的编码。

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

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

 Directory of ...eclipse-workspace\File IO 05/30/2018 07:52 PM  bin 05/30/2018 07:48 PM 148 sample.txt 05/30/2018 07:46 PM  src testFile = new File("Sample.txt"); System.out.println(testFile.getAbsolutePath());