How to write multiple line property value using PropertiesConfiguration?
JavaPropertiesApache Commons-ConfigJava Problem Overview
I have a properties file with a property with a List value (comma separated), how to write this property in a multi-line ? (backslash after the comma)?
I can't find anything about this or at least about escaping comma to comma and backslash.
Java Solutions
Solution 1 - Java
If you mean the following; that just relies on backslash + end-of-line. I just found it documented in: http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html
primes = 2,\
3,\
5,\
7,\
11
Solution 2 - Java
Check the User Guide for Properties files:
Special Characters and Escaping:
> If you need a special character in a property like a line feed, a
> tabulation or an unicode character, you can specify it with the same
> escaped notation used for Java Strings. The list separator ("," by
> default), can also be escaped:
>
> key = This \n string \t contains \, escaped \\ characters \u0020
Backslashes are more difficult.
> You can specify a list of values in your properties file by using the > same key on several lines: > > # chart colors > colors.pie = #FF0000; > colors.pie = #00FF00; > colors.pie = #0000FF;
Solution 3 - Java
You need to combine the \n
character inside the content and the line continuation escape (\<eol>
at end of line) to get a multi line property actually be represented in the properties file and in the returned value:
KEY1=first line\n\
second line\n\
last line
KEY2=another key
Not sure if commons-configuration can be configured to actually use this syntax for writing.
Solution 4 - Java
Another option could be is to use one of properties formats that is designed to support multi-line values.
XML can handle multi-line properties well, but it has a lot of noise.
MProps: is an example of the format with almost no special formatting required: https://github.com/mprops/mprops-java