apache commons configuration loads property until

2019-01-25 09:01发布

I want to load configuration (apache commons configuration) from a properties file. My program is:

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

In my.properties I have

 myValue=value,

with comma

When I run program the output is value, not value, with comma. Looks like value is loaded until , character.

Any ideas?

5条回答
霸刀☆藐视天下
2楼-- · 2019-01-25 09:32

Check Javadoc. You have to setDelimiterParsingDisabled(true) to disable parsing list of properties.

查看更多
一夜七次
3楼-- · 2019-01-25 09:37

Actually propConfig.setDelimiterParsingDisabled(true) is working, but you must load the config file after this setting, for example:

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

if your code like is :

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

then the setting won't work

查看更多
冷血范
4楼-- · 2019-01-25 09:37

If you put \ before the ,, you escape it, and you can read the value

Example:

myValue=value\, with comma

You read = value, with comma without problems

查看更多
小情绪 Triste *
5楼-- · 2019-01-25 09:46

That behavior is clearly documented, i.e., that PropertiesConfiguration treats a value with a comma as multiple values allowing things like:

fruit=apples,banana,oranges

to be interpreted sensibly. The fix (from the doc) is to add a backslash to escape the comma, e.g.,

myKey=value\, with an escaped comma
查看更多
别忘想泡老子
6楼-- · 2019-01-25 09:48

PropertiesConfiguration interprets ',' as a value separator.

查看更多
登录 后发表回答