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
精彩评论