我很困惑getResourceAsStream()
;getResourceAsStream(文件)在哪裏搜索文件?
我的包結構如下:
而且我想從floodlightdefault.properties閱讀。這裏是我的代碼,趴在net.floodlightcontroller
包:
package net.floodlightcontroller.core.module;
// ...
InputStream is = this.getClass().getClassLoader()
.getResourceAsStream("floodlightdefault.properties");
但它失敗了,越來越is == null
。所以我想知道getResourceAsStream(file)
如何搜索file
。我的意思是它通過某些PATH
s或在某個訂單?
如果是這樣,如何配置getResourceAsStream()
尋找的地方?
Thx!
您是否已將資源目錄在運行你的代碼時在類路徑中?一般來說,getResourceAsStream的行爲取決於ClassLoader的實現。 –
一般來說,它也將取決於「this」是指什麼。 – Radiodef
要解決您的空問題,我最初看到兩件事情。首先,它看起來像你只需要將你的目錄改爲'「resources/floodlightdefault.properties」'。其次,該方法可能會查找構建目錄中的資源,並且您顯示的目錄結構看起來是IDE項目的源文件夾。儘管當然如果您已經將資源添加到項目中,IDE應該自動將文件複製到構建目錄。在使用Netbeans進行快速測試時,如果從_both_ build和src文件夾中刪除它們,我的資源只會出現空白。 – Radiodef