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

问题描述 投票:0回答:5

我有一个属性文件,其中属性具有逗号分隔的列表值。如何编写这些属性值以便它们跨越多行? (也许逗号后面有反斜杠?)

我找不到任何关于此的信息,或者至少找不到关于将逗号转义为逗号和反斜杠的信息。

java properties apache-commons-config
5个回答
196
投票

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

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

30
投票

检查属性文件用户指南

特殊字符和转义:

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

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

反斜杠更难。

列表和数组:

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

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

30
投票

您需要将内容中的

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

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

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


0
投票

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

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

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


0
投票

在行尾插入“ \“。 例如 : 键=值 \

© www.soinside.com 2019 - 2024. All rights reserved.