我正在尝试编写一个方法,该方法将使用 Class.getResource() 读取属性文件,更改其值,然后保存文件。
public void saveDBConnectionValues(String user, String password, String host, int port) throws IOException, URISyntaxException
{
Properties dbProperties = new Properties();
File f = new File(this.getClass().getResource("db.properties").toURI());
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(f))));
dbProperties.load(reader);
reader.close();
dbProperties.setProperty("user", user);
dbProperties.setProperty("pw", password);
dbProperties.setProperty("host", host);
dbProperties.setProperty("port", Integer.toString(port));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f)))
dbProperties.store(writer, null);
writer.close();
}
我的 db.properties 文件已正确读取,但存储方法似乎不起作用。有人可以解释为什么这不起作用,以及我需要做什么才能让它工作吗?
谢谢
最佳答案
资源和文件是两个不同的东西。资源从类加载器加载,并在类路径中找到。它可以从文件系统、jar 或套接字(或任何其他位置,具体取决于类加载器)加载。写入资源没有意义。
如果您想读写文件,请不要使用资源。使用文件流或读取器/写入器。
关于java - 无法编辑通过 Class.getResource() 加载的属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8494126/