【发布时间】:2015-02-02 11:41:42
【问题描述】:
假设我有属性文件test.properties。
已经定义了一些键/值对,例如:
key1=value1
key2=value2
key3=value3
我在内存中更改了这些属性的一些值(假设只有一个键的值)。我想将更改存储到属性文件中,但实际上只存储更改的键/值 => 而不是重写整个文件。
这可能吗?
我可以实现一些库的任何实现吗?
【问题讨论】:
标签: java properties
假设我有属性文件test.properties。
已经定义了一些键/值对,例如:
key1=value1
key2=value2
key3=value3
我在内存中更改了这些属性的一些值(假设只有一个键的值)。我想将更改存储到属性文件中,但实际上只存储更改的键/值 => 而不是重写整个文件。
这可能吗?
我可以实现一些库的任何实现吗?
【问题讨论】:
标签: java properties
String fileName = "C:\\test\\test.txt";
File f = new File(fileName);
InputStream is = new FileInputStream(f);
Properties p = new Properties();
p.load(is);
p.setProperty("key3","value4");
OutputStream os = new FileOutputStream(f);
p.store(os,"comments");
但我认为这会覆盖整个属性文件。
【讨论】:
看java.util.prefs.Preferences
编辑:
这是一个 Java 实用程序类,它可以执行您想要的操作——存储键/值对(仅将字符串作为键),而无需(重新)写入它们的整个文件来更改一个值。 Java 已通过依赖于系统的支持来实现它们,因此它们是可移植的。
【讨论】:
java.util.prefs.Preferences 时具体必须注意什么?