¿Cómo escribir el valor de propiedad de varias líneas usando PropertiesConfiguration?

99

Tengo un archivo de propiedades con una propiedad con un valor de lista (separados por comas), ¿cómo escribir esta propiedad en una línea múltiple? (barra invertida después de la coma)?

No puedo encontrar nada sobre esto o al menos sobre cómo escapar de coma a coma y barra invertida.

Uhkkgjhfjf Jgkjkhj
fuente
1
¿Puede aclarar, no estoy seguro de lo que está tratando de hacer?
Aviram Segal
1
Tengo una propiedad que tiene un valor de varias líneas, por ejemplo: key1 = val1, \ val2, \ val3 key2 = hello val1, val2, val3 están en líneas separadas, pero cuando PropertiesConfigurations las escribe en un archivo, las escribirá en una línea
Uhkkgjhfjf Jgkjkhj
ah, estás hablando de cómo lo escribe ... ok
Aviram Segal

Respuestas:

26

Consulte la Guía del usuario para ver los archivos de propiedades :

Caracteres especiales y escape :

Si necesita un carácter especial en una propiedad como un salto de línea, una tabulación o un carácter Unicode, puede especificarlo con la misma notación de escape utilizada para las cadenas de Java. El separador de lista ("," por defecto), también se puede escapar:

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

Las barras invertidas son más difíciles.

Listas y matrices :

Puede especificar una lista de valores en su archivo de propiedades usando la misma clave en varias líneas:

# chart colors
colors.pie = #FF0000;
colors.pie = #00FF00;
colors.pie = #0000FF;
Arend contra Reinersdorff
fuente
15

Debe combinar el \ncarácter dentro del contenido y el escape de continuación de línea ( \<eol>al final de la línea) para obtener una propiedad de varias líneas que realmente se represente en el archivo de propiedades y en el valor devuelto:

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

No estoy seguro si commons-configuration se puede configurar para usar esta sintaxis para escribir.

eckes
fuente
0

Otra opción podría ser utilizar uno de los formatos de propiedades que esté diseñado para admitir valores de varias líneas.

XML puede manejar bien las propiedades de varias líneas, pero tiene mucho ruido.

MProps: es un ejemplo del formato que casi no requiere un formato especial: https://github.com/mprops/mprops-java

Mikhail Fursov
fuente