Como escrever valores de propriedade de várias linhas usando PropertiesConfiguration?

99

Eu tenho um arquivo de propriedades com uma propriedade com um valor de lista (separados por vírgula), como escrever essa propriedade em uma linha multilinha? (barra invertida após a vírgula)?

Não consigo encontrar nada sobre isso ou pelo menos sobre como escapar de vírgula para vírgula e barra invertida.

Uhkkgjhfjf Jgkjkhj
fonte
1
Você pode esclarecer, não tenho certeza do que você está tentando fazer
Aviram Segal
1
Eu tenho uma propriedade que tem um valie multilinha, por exemplo: key1 = val1, \ val2, \ val3 key2 = hello val1, val2, val3 estão em linhas separadas, mas quando PropertiesConfigurations os grava em um arquivo, ele os grava em um linha
Uhkkgjhfjf Jgkjkhj
ah você está falando sobre como ele escreve ... ok
Aviram Segal

Respostas:

26

Verifique o Guia do usuário para os arquivos de propriedades :

Personagens especiais e escape :

Se você precisar de um caractere especial em uma propriedade como uma alimentação de linha, uma tabulação ou um caractere Unicode, você pode especificá-lo com a mesma notação de escape usada para Java Strings. O separador de lista ("," por padrão), também pode ter escape:

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

Barras invertidas são mais difíceis.

Listas e matrizes :

Você pode especificar uma lista de valores em seu arquivo de propriedades usando a mesma chave em várias linhas:

# chart colors
colors.pie = #FF0000;
colors.pie = #00FF00;
colors.pie = #0000FF;
Arend v. Reinersdorff
fonte
15

Você precisa combinar o \ncaractere dentro do conteúdo e o escape de continuação de linha ( \<eol>no final da linha) para obter uma propriedade multilinha realmente representada no arquivo de propriedades e no valor retornado:

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

Não tenho certeza se a configuração comum pode ser configurada para realmente usar esta sintaxe para escrita.

eckes
fonte
0

Outra opção é usar um dos formatos de propriedades que foi projetado para oferecer suporte a valores multilinhas.

XML pode lidar bem com propriedades de várias linhas, mas tem muito ruído.

MProps: é um exemplo do formato com quase nenhuma formatação especial necessária: https://github.com/mprops/mprops-java

Mikhail Fursov
fonte