2011-06-01 45 views
1
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.jpgFileNotFoundException異常,即使該文件是有

正如你所看到的,txt文件是在同一文件夾中StormAnalysis.java文件。此外,代碼工作,如果我改變(這是給出另一個任務/問題)的文件路徑爲「weather.dat」。

任何想法可以理解的!

回答

8

的文件不在那裏,如果我T爲它不會拋出異常:-)

的可能的罪魁禍首是工作目錄不同於期望是什麼(也就是當前工作目錄不包含該名稱的文件) 。這可以通過使用文件的絕對路徑並觀察它被正確加載來進行簡單驗證。

另外,爲了找到當前目錄:

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

編碼愉快。

+0

@Arnab,由於您使用的是File的構造函數的相對路徑,因此計算的路徑將始終相對於java/javaw可執行文件的工作目錄。您需要修改對構造函數的調用,以包含您的文件所在的任何子目錄。 – 2011-06-01 07:05:49

2

在運行Java應用程序之前,Eclipse會默認將類文件複製到bin\classes目錄(除非已更改爲其他目錄)。出於所有實際目的,該目錄不同於存在輸入文件的src目錄。您必須在Eclipse中配置項目的構建屬性,以將輸入文件(或.txt類型的所有文件)複製到輸出目錄。這將使文件在類文件所在的同一目錄中可用,從而使文件能夠被讀取。

相關問題