java讀取resouces目錄下檔案

爆米花9958發表於2017-06-15
resources中存放一些個資原始檔,比如properties檔案等,編譯好會自動將這裡邊的檔案複製到target/classes裡去。獲取資原始檔的方法說明:
XXX.class.getResourceAsStream ()返回的是inputstream
XXX.class.getResource(“/”)返回URL,是classpath的位置
XXX.class.getClassLoader().getResource(“”) 返回的是classpath的位置

讀取resources裡的檔案
Properties prop = new Properties();
try {
prop.load(this.getClass().getResourceAsStream(“/kafka-http.properties”));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

關鍵在於後面的路徑的寫法:
“kafka-http.properties” 是去當前這個class檔案同一個目錄下找(也即是當前這個java檔案同一個目錄下必須有這個properties檔案,才能複製到對應的class目錄)
“/kafka-http.properties” 是去整個專案的classes目錄下去找,也即是上面提到過的target/classes

所以如果將屬性檔案放到src/main/resources裡,那麼要用Class.getResourceAsStream(“/kafka-http.properties”)來讀取。


參考:

http://www.jb51.net/article/106380.htm
http://blog.csdn.net/wenhuiqiao/article/details/8485879
http://www.cnblogs.com/lyhero11/p/5186022.html



相關文章