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

时间:2011-06-10 13:54:16

标签: java apache-commons apache-config

我想从属性文件加载配置(apache commons配置)。我的节目是:

PropertiesConfiguration pc = new PropertiesConfiguration("my.properties");
System.out.println(pc.getString("myValue"));

my.properties我有

 myValue=value,

用逗号

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

有什么想法吗?

5 个答案:

答案 0 :(得分:13)

该行为为clearly documented,即PropertiesConfiguration将带逗号的值视为多个值,允许以下内容:

fruit=apples,banana,oranges

明智地解释。修复(来自doc)是添加一个反斜杠来转义逗号,例如,

myKey=value\, with an escaped comma

答案 1 :(得分:9)

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

答案 2 :(得分:3)

实际上propConfig.setDelimiterParsingDisabled(true)正常工作,但您必须在此设置后加载配置文件,例如:

propConfig = new PropertiesConfiguration();
            propConfig.setDelimiterParsingDisabled(true);
            propConfig.load(propertiesFile);

如果你的代码是:

propConfig = new PropertiesConfiguration(propertiesFile);         propConfig.setDelimiterParsingDisabled(真);

然后设置无效

答案 3 :(得分:0)

PropertiesConfiguration将','解释为值分隔符。

答案 4 :(得分:0)

如果您将\放在,之前,则将其转义,然后您就可以读取值

示例:

myValue=value\, with comma

您没有问题地阅读= value, with comma