How to write multiple line property value using PropertiesConfiguration?

JavaPropertiesApache Commons-Config

Java 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.

Lists and arrays:

> 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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionUhkkgjhfjf JgkjkhjView Question on Stackoverflow
Solution 1 - JavaJoop EggenView Answer on Stackoverflow
Solution 2 - JavaArend v. ReinersdorffView Answer on Stackoverflow
Solution 3 - JavaeckesView Answer on Stackoverflow
Solution 4 - JavaMikhail FursovView Answer on Stackoverflow