2014-10-10 91 views
0

我有以下的結構,我的Eclipse項目:如何在靜態上下文中訪問文件?

enter image description here

我要訪問的文件lito.properties與方法的FileInputStream

在網上搜索,我發現這個解決方案:

FileInputStream file = (FileInputStream) this.getClass().getResourceAsStream("/files/lito.properties"); 

這似乎是做到這一點的最好辦法,但如果我在一個靜態方法我工作? 它總是給這個錯誤:

Cannot use this in a static context

所以,我該怎麼做才能訪問該文件在靜態情況下?

+0

爲什麼不把'ResourceBundle'的優勢在哪裏? http://www.avajava.com/tutorials/lessons/how-do-i-read-a-properties-file-with-a-resource-bundle.html – 2014-10-10 17:40:58

回答

1

替換this.getClass()與你的類和class的名字:

FileInputStream file = (FileInputStream) 
    YourClass.class.getResourceAsStream("/files/lito.properties"); 

另外,儘量在適當的資源文件夾,而不是在你的java src文件夾中的所有資源文件。這是因爲像maven這樣的編譯器會忽略來自源的任何non.java文件。

1

只要把你的文件直接在項目文件夾相同拉特作爲src文件夾不是它雖然像這樣訪問:

FileInputStream file = new FileInputStream("lito.properties"); 

或者,如果你想在一個子文件夾只需添加文件夾根目錄的項目文件夾,然後把文件放進去。例如:

MyProject->數據 - > lito.properties

FileInputStream file = new FileInputStream("Data/lito.properties"); 
+0

對不起,只是把它放在你的項目文件夾什麼文件你需要在你的項目文件夾的根目錄並且像上面那樣訪問,或者如果你想要有一個文件夾結構,只需添加到項目文件夾中即可。 – brso05 2014-10-10 17:45:54

相關問題