我最近发现了关于java.util.Properties
,它允许我在不编写自己的函数的情况下从配置中写入和读取。
我很兴奋,因为它很容易使用,但后来我在存储修改后的配置文件时发现了一个缺陷。
这是我的代码,现在很简单:
FileWriter writer = null;
Properties configFile = new Properties();
configFile.load(ReadFileTest.class.getClassLoader().getResourceAsStream("config.txt"));
String screenwidth = configFile.getProperty("screenwidth");
String screenheight = configFile.getProperty("screenheight");
System.out.println(screenwidth);
System.out.println(screenheight);
configFile.setProperty("screenwidth", "1024");
configFile.setProperty("screenheight", "600");
try {
writer = new FileWriter("config.txt" );
configFile.store(writer, null);
} catch (IOException e) {
e.printStackTrace();
}
writer.flush();
writer.close();
我注意到的问题是我尝试编辑的配置文件是这样存储的:
foo: bar
bar: foo
foobar: barfoo
但是,之后的输出properties.store(writer, null)
是这样的:
foo=bar
bar=foo
foobar=barfoo
我编辑的配置文件不适用于我的程序,它适用于其他应用程序,该应用程序需要配置文件采用上面显示的格式并带有:
分隔符,否则它将配置重置为默认值。
有谁知道如何轻松改变这一点?
我现在搜索了前 5 个 Google 页面,但没有发现有类似问题的人。我还检查了 Javadoc,发现没有任何函数可以让我在不为自己编写类的情况下更改它。我现在想使用Properties
它,因为它在那里并且很容易使用。保存文件后,我也想到了将所有内容替换为所有内容=
,:
但也许有人有更好的建议?