Как записать значение свойства с несколькими строками с помощью PropertiesConfiguration?

100

У меня есть файл свойств со свойством со значением списка (через запятую), как записать это свойство в несколько строк? (обратная косая черта после запятой)?

Я ничего не могу найти об этом или, по крайней мере, об экранировании запятой на запятую и обратную косую черту.

Uhkkgjhfjf Jgkjkhj
источник
1
Не могли бы вы уточнить, я не уверен, что вы пытаетесь сделать
Авирам Сегал
1
У меня есть свойство, которое имеет многострочную валидность, например: key1 = val1, \ val2, \ val3 key2 = hello val1, val2, val3 находятся в отдельных строках, но когда PropertiesConfigurations записывает их в файл, он записывает их в одну line
Uhkkgjhfjf Jgkjkhj
ах, вы говорите о том, как он это пишет ... ок
Авирам Сегал

Ответы:

26

Найдите в Руководстве пользователя файлы свойств :

Специальные символы и экранирование :

Если вам нужен специальный символ в таком свойстве, как перевод строки, табуляция или символ Юникода, вы можете указать его в той же экранированной нотации, что и для строк Java. Разделитель списка ("," по умолчанию) также может быть экранирован:

key = This \n string \t contains \, escaped \\ characters \u0020

Обратную косую черту сложнее.

Списки и массивы :

Вы можете указать список значений в вашем файле свойств, используя один и тот же ключ в нескольких строках:

# chart colors
colors.pie = #FF0000;
colors.pie = #00FF00;
colors.pie = #0000FF;
Аренд против Райнерсдорфа
источник
16

Вам нужно объединить \nсимвол внутри содержимого и escape-символ продолжения строки ( \<eol>в конце строки), чтобы получить многострочное свойство, которое действительно будет представлено в файле свойств и в возвращаемом значении:

KEY1=first line\n\
second line\n\
last line
KEY2=another key

Не уверен, можно ли настроить commons-configuration для фактического использования этого синтаксиса для записи.

Eckes
источник
0

Другой вариант - использовать один из форматов свойств, предназначенный для поддержки многострочных значений.

XML может хорошо обрабатывать многострочные свойства, но в нем много шума.

MProps: пример формата, почти не требующего специального форматирования: https://github.com/mprops/mprops-java

Михаил Фурсов
источник