我正在尝试使用java更新属性文件。该文件的结构应如下所示:
IDs = \
11:22:33:44:55:66:77,\
11:22:33:44:55:66,\
1C:BA:8C:20:C5:0A
但我得到的只是:
IDs=11\:22\:33\:44\:55\:66\:77\:88,\\\njj\:jj\:jj\:jj\:jj\:jj\:jj\:jj,\\\n55\:55\:55\:55\:55\:55\:55\:55,\\\n
我只是找不到很多关于使用java编写属性文件而且我完全迷失了。另一个问题是“:”会自动转义,我该如何防止这种情况? 我正在使用的代码:
String str = "";
for (User u : values){
str = str + u.getId() + ",\\"+"\n";
}
prop.setProperty("IDs", str);
答案 0 :(得分:5)
属性文件中一行末尾的反斜杠表示属性值在下一行继续。所以你的财产相当于
IDs = 11:22:33:44:55:66:77,11:22:33:44:55:66,1C:BA:8C:20:C5:0A
那应该设置为属性值。不幸的是,属性永远不会像你希望的那样在多行上格式化它。它将使用反斜杠和\ n作为属性值的一部分存储在属性中,因此将转义它们。因此,您应该接受的是将值放在一行上,只需将属性值设置为"11:22:33:44:55:66:77,11:22:33:44:55:66,1C:BA:8C:20:C5:0A"
。
答案 1 :(得分:0)
只需使用str.match(test, "gi");
库,commons-io
中的true
告诉要追加的功能。
(sting1, file, true);