我最近发现了约java.util.Properties
,它允许我编写和读取配置,而无需编写自己的函数。如何将Properties.store()分隔符从“=”更改为“:”?
我很兴奋,因为它很容易使用,但后来发现一个缺陷,当我存储修改后的配置文件。
这里是我的代码,很简单,现在:
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
,因为它在那里并且很容易使用。 我也想到了在保存文件后,将=
全部替换为:
,但也许有人得到了更好的建议?
这是一个不错的主意,我只是使用Properties来读取文件和一个FileWriter来存储它,谢谢你现在就试试。 – user1137183 2012-01-08 15:35:59
但是,请检查Properties.saveConvert()和loadConvert()是如何转义特殊字符的。这对你来说可能是一个重大问题。 – user949300 2012-01-28 02:24:25