我有一个属性文件,其中的属性具有逗号分隔的列表值。如何编写这些属性值以便它们跨越多行?(也许在逗号后面加一个反斜杠?)
I can't find anything about this or at least about escaping comma to comma and backslash.
检查 属性文件用户指南:
特殊字符及转义 :
If you need a special character in a property like a line feed, a 列表或 Unicode字符,你可以用相同的 用于 Java 字符串的转义表示法 (默认值) ,也可以转义: key = This \n string \t contains \, escaped \\ characters \u0020
If you need a special character in a property like a line feed, a 列表或 Unicode字符,你可以用相同的 用于 Java 字符串的转义表示法 (默认值) ,也可以转义:
key = This \n string \t contains \, escaped \\ characters \u0020
反斜杠更难。
列表和数组 :
属性指定属性文件中的值列表 same key on several lines: # chart colors colors.pie = #FF0000; colors.pie = #00FF00; colors.pie = #0000FF;
属性指定属性文件中的值列表 same key on several lines:
# chart colors colors.pie = #FF0000; colors.pie = #00FF00; colors.pie = #0000FF;
If you mean the following; that just relies on backslash + end-of-line. I just found it documented in: Http://docs.oracle.com/javase/6/docs/api/java/util/properties.html
primes = 2,\ 3,\ 5,\ 7,\ 11
你需要结合内容中的 \n字符和行继续转义(行末尾的 \<eol>)来得到一个多行属性,这个属性实际上是在属性文件和返回值中表示的:
\n
\<eol>
KEY1=first line\n\ second line\n\ last line KEY2=another key
不确定 commons-configuration 是否可以配置为实际使用此语法进行编写。
另一种选择是使用一种旨在支持多行值的属性格式。
XML 可以很好地处理多行属性,但是它有很多杂音。
MProps: 是几乎不需要特殊格式的格式的一个例子: https://github.com/mprops/mprops-java