开发者

apache commons configuration loads property until "," character

I want to load configuration (apache commons conf开发者_JS百科iguration) 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?


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


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


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);

Settings won't work if your code like is:

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


PropertiesConfiguration interprets ',' as a value separator.


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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜