2011-07-28 168 views
3

我有一個Java項目,我在讀取文件。由於該文件是在當前目錄下我這樣做:從java當前目錄讀取文件

String dataset = "./myFile.dat"; 

但我得到:java.io.FileNotFoundException說,它不能找到該文件。

如何解決這個問題?當我給它的工作原理整個路徑...

String dataset = "C:\\eclipse\\workspace\\p1\\src\\myFile.dat"; 
+0

如果預先添加System.getProperty(「user.dir」),會發生什麼? – cwallenpoole

+2

也許這可以幫助http://stackoverflow.com/questions/1480398/java-reading-a-file-from-current-directory – talnicolas

回答

1

如果myFile.dat是一個應用程序的資源,它應該包含在一個罐子裏是在運行時類 - 應用程序的路徑。然後,一個URL的資源可以利用..

URL urlToData = this.getClass().getResource("path/in/jar/to/myFile.dat"); 

不要依靠user.dir財產形成。取決於應用程序的方式。它可能指向與應用程序或數據目錄完全不同的地方。

0

試試這個:

String dataset = System.getProperty("user.dir") + "/myFile.dat"; 
+0

這是一個脆弱的方法。查看我的答案,以及由@talnicolas鏈接的線索以獲取更多詳細信息。 –

+0

-1起初,我沒有注意到文件名前的'/'。這甚至更*脆弱。 'File(File,String)'構造函數將考慮不同平臺上的不同分隔符。爲了構建文件對象的'String'表示(我不推薦),使用'System.getProperty(「file.separator」)''。 –