我最近發現了約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