如何使用java在属性文件中创建新行?

时间:2015-06-25 06:37:55

标签: java properties-file

我正在尝试使用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);

2 个答案:

答案 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);