Java Properties.store 正在删除其他条目

标签 java configuration-files

我正在尝试使用 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/

相关文章:

java - Quarkus ClassNotFoundException 本地依赖

java - 更新 TreeMap 中的对象 (Java)

java - 如何用ELKI插入自定义距离?

java - 鼠标拖动绘制形状

apache-spark - 运行时的 Spark 配置更改

python - 在 ConfigParser 中保留大小写?

yaml - 是 .yaml 还是 .yml?

php - 如何在 Zend Framework 2 的内存中缓存应用程序配置?

c - 避免在 C 中读取配置文件的全局变量

java - Java 链表