通過getResourcestream成功訪問屬性文件並使用fileinputstream讀取。現在我需要在添加新屬性後覆蓋同一個文件獲取項目src中文件的路徑並將其傳遞到fileoutputstream進行覆蓋
問題:卡住獲取fileoutputstream覆蓋所需的相同文件的路徑。
屬性文件在src/main/resources中。,並試圖從的src/main/JAVA/COM /網頁更新/ my.class
Properties prop = new Properties();
InputStream in = getClass().getClassLoader().getResourceAsStream("dme.properties");
FileOutputStream out = null;
try {
prop.load(in);} // load all old properties
catch (IOException e) {}
finally {try { in.close(); } catch (IOException e) {} }
prop.setProperty("a", "b"); //new property
try {
out = new FileOutputStream("dme.properties");
prop.store(out, null);} //overwrite
catch (IOException e) {}
finally {try {out.close();} catch (IOException e) {} }
}
爲什麼不能將資源作爲流獲取,只需獲取資源URL即可。然後,您可以讀取和寫入該URL。 'URL url = getClass()。getResource(「/ dme.properties」);' –
不要嘗試寫入類路徑資源。它可以在你開發IDE的時候工作,但是當你從一個.jar運行時,它是不可能的。將新的屬性寫入用戶主目錄下的新文件。還*永遠*寫一個空的catch塊。至少,打印堆棧跟蹤。 – VGR
我想在戰爭文件中有一個全局設置,可以由不同的用戶進行更改。除了數據庫方法之外,沒有辦法通過屬性文件來完成嗎? @VGR –