2011-07-28 170 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”)''。 –