我正在尝试使用 Properties 修改 Java 中的配置文件。我尝试像这样修改多个条目中的两个:
Properties properties = new Properties();
FileInputStream fin = null;
FileOutputStream fout = null;
fin = new FileInputStream(mCallback.getConfFile());
fout = new FileOutputStream(mCallback.getConfFile());
properties.load(fin);
properties.setProperty(Wrapper.GAME_PATH_KEY, (String)gamePathText.getText());
properties.setProperty(Wrapper.GAME_TYPE_KEY, (String)selectedGame.getSelectedItem());
properties.store(fout, null);
但是当我检查结果后的文件时,我发现整个文件都被覆盖了,只剩下这两个条目。这是一个 android 应用程序,但我猜它与这里的问题无关。我做错了什么?
最佳答案
您必须阅读所有属性,然后修改您想要的属性。之后,您必须将所有内容写入文件。您不能只对项目进行修改。 Properties API 不提供该修改功能。
编辑:
交换这两个语句-
fout = new FileOutputStream(mCallback.getConfFile());
properties.load(fin);
您应该先加载,然后再创建同名文件。
关于Java Properties.store 正在删除其他条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383275/