動態讀取配置檔案 config
動態讀取config配置檔案, 否則配置檔案修改之後不能讀取更新部分報錯,
try {
InputStream in =new FileInputStream("ip.config");//這裡配置檔案地址寫成全路徑就會報錯,應該只寫檔名
p.load(in);
in.close();
if(p.containsKey("fuck")){
this.url = p.getProperty("fuck");
c = this.url.split(",");
}
} catch (IOException ex) {
ex.printStackTrace();
}
return c;
InputStream stream=Thread.currentThread().getClass().getResourceAsStream("/config.properties");
但不能這樣寫:
InputStream stream = Thread.currentThread().getClass().getClassLoader().getResourceAsStream("config.properties");
但可以這樣寫:
InputStream stream = this.getClass().getClassLoader().getResourceAsStream("config.properties");
InputStream stream = new FileInputStream("/config.properties"); //相對於專案web-inf/classes目錄
為什麼 我就不再解釋了吧。
如果是在web專案中,我們還可以這樣寫:
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("config.properties");
不過servlet已經幫我們封裝了,我們一般這樣寫:
ServletContext.getRealPath("/") 這裡的斜槓是相對與專案部署後的WebRoot為根目錄。
va里加載Properties檔案都是通過Java.util包裡的Properties類的load()方法來載入一個Properties配置檔案,load()方法需要接收一個檔案輸入流,而InputStream的構建需要Java.io.File物件,即new FileInputStream(new File(path));現在問題就集中在如何動態獲取
ava里加載Properties檔案都是通過Java.util包裡的Properties類的load()方法來載入一個Properties配置檔案,load()方法需要接收一個檔案輸入流,而InputStream的構建需要Java.io.File物件,即new FileInputStream(new File(path));現在問題就集中在如何動態獲取這個路徑。