如何使用PropertiesConfiguration写多行属性值?

时间:2012-01-23 17:28:06

标签: java properties apache-commons-config

我有一个属性文件,其属性具有List值(以逗号分隔),如何在多行中写入此属性? (逗号后面的反斜杠)?

我找不到任何有关此内容或至少有关逗号和反斜杠的逗号。

4 个答案:

答案 0 :(得分:126)

如果您的意思是以下内容;这只依赖于反斜杠+行尾。我刚刚发现它记录在: http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html

primes = 2,\
    3,\
    5,\
    7,\
    11

答案 1 :(得分:25)

检查User Guide for Properties files

Special Characters and Escaping

  

如果你需要在一个属性中使用特殊字符,比如换行符,a   制表或unicode字符,您可以使用相同的方式指定它   用于Java字符串的转义表示法。列表分隔符(“,”by   默认),也可以转义:

     

key = This \n string \t contains \, escaped \\ characters \u0020

反斜杠更难。

Lists and arrays

  

您可以使用以下命令在属性文件中指定值列表   几行上的相同键:

# chart colors
colors.pie = #FF0000;
colors.pie = #00FF00;
colors.pie = #0000FF;

答案 2 :(得分:10)

您需要将内容中的\n字符与行末尾的行继续转义(\<eol>)结合起来,以获得实际在属性文件和返回中表示的多行属性值:

KEY1=first line\n\
second line\n\
last line
KEY2=another key

不确定是否可以将commons-configuration配置为实际使用此语法进行编写。

答案 3 :(得分:0)

另一种选择可能是使用一种旨在支持多行值的属性格式。

XML可以很好地处理多行属性,但它有很多噪音。

MProps:是几乎不需要特殊格式的格式示例:https://github.com/mprops/mprops-java