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


100

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

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


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 для фактического использования этого синтаксиса для записи.


0

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.