apache commons配置加载属性,直到","字符

Tyl*_*ler 15 java apache-config apache-commons

我想从属性文件加载配置(apache commons配置).我的计划是:

PropertiesConfiguration pc = new PropertiesConfiguration("my.properties");
System.out.println(pc.getString("myValue"));
Run Code Online (Sandbox Code Playgroud)

my.properties我有

 myValue=value,
Run Code Online (Sandbox Code Playgroud)

用逗号

当我运行程序时,输出是value,而不是value, with comma.看起来值加载到,字符之前.

有任何想法吗?

ig0*_*774 13

这种行为是清楚记录的,即PropertiesConfiguration用逗号作为多个值处理值允许以下内容:

fruit=apples,banana,oranges
Run Code Online (Sandbox Code Playgroud)

理智地解释.修复(来自doc)是添加反斜杠以逃避逗号,例如,

myKey=value\, with an escaped comma
Run Code Online (Sandbox Code Playgroud)


Krz*_*zyH 9

检查Javadoc.您必须setDelimiterParsingDisabled(true)才能禁用解析属性列表.


小智 7

实际上 propConfig.setDelimiterParsingDisabled(true) 是有效的,但是您必须在设置后加载配置文件,例如:

propConfig = new PropertiesConfiguration();
propConfig.setDelimiterParsingDisabled(true);
propConfig.load(propertiesFile);
Run Code Online (Sandbox Code Playgroud)

如果您的代码如下所示,则设置将不起作用:

propConfig = new PropertiesConfiguration(propertiesFile);
propConfig.setDelimiterParsingDisabled(true);
Run Code Online (Sandbox Code Playgroud)