如何在我的jar的同一位置读取文件,平台独立的方式?

时间:2014-08-05 16:57:52

标签: java

我有一个文件夹,有一个名为readme.txt的文件。我的应用程序将在Linux和DOS环境中运行。如果不编写“c :: \ ... \”或“〜/ Desktop ...”这样的完整路径,如何在Eclipse中用Java读取文件内容?

目录结构

 project home path
    | ------ src // (folder)
    | ------ test // (folder)
    | ------ resource // (folder)
                | -------- datasetX // (folder)
                               | ------- readme.txt

我已经完成但没有工作。

this.getClass().getResourceAsStream("readme.txt")

更新1:如果可能,

我不希望readme.txt最后出现在Jar文件中。资源shuold只是可选文件夹,不应与Jar文件一起分发。

只是告诉你不要犯同样的错误,这个问题在that questionthat question一起被关闭,甚至没有比较两者。甚至{{3}}中的答案也不适用于我的。

1 个答案:

答案 0 :(得分:1)

如果您的范围仅适用于IDE,则默认情况下eclipse会将当前目录设置为项目的根目录,您可以从那里导航,

例如

File readMe = new File("./resource/datasetX/readme.txt");

如果你的应用程序将在某个时候导出为JAR,那么请确保将readme.txt放在类路径中并将其作为具有正确路径的资源读取