通过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 –