Come scrivere il valore della proprietà su più righe utilizzando PropertiesConfiguration?


99

Ho un file delle proprietà con una proprietà con un valore di elenco (separato da virgole), come scrivere questa proprietà su più righe? (barra rovesciata dopo la virgola)?

Non riesco a trovare nulla su questo o almeno sull'escape della virgola in virgola e barra rovesciata.


1
Puoi chiarire, non sono sicuro di cosa stai cercando di fare
Aviram Segal

1
Ho una proprietà che ha una valie a più righe, ad esempio: key1 = val1, \ val2, \ val3 key2 = hello val1, val2, val3 sono in righe separate, ma quando PropertiesConfigurations le scrive in un file, le scriverà in una linea
Uhkkgjhfjf Jgkjkhj

ah stai parlando di come lo scrive ... ok
Aviram Segal

Risposte:



26

Controllare la Guida per l' utente per i file delle proprietà :

Caratteri speciali ed evasione :

Se hai bisogno di un carattere speciale in una proprietà come un avanzamento riga, una tabulazione o un carattere Unicode, puoi specificarlo con la stessa notazione di escape usata per le stringhe Java. Anche il separatore di elenco ("," per impostazione predefinita) può essere preceduto da caratteri di escape:

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

I backslash sono più difficili.

Liste e array :

È possibile specificare un elenco di valori nel file delle proprietà utilizzando la stessa chiave su più righe:

# chart colors
colors.pie = #FF0000;
colors.pie = #00FF00;
colors.pie = #0000FF;

15

È necessario combinare il \ncarattere all'interno del contenuto e l'escape di continuazione della riga ( \<eol>alla fine della riga) per ottenere una proprietà su più righe effettivamente rappresentata nel file delle proprietà e nel valore restituito:

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

Non sono sicuro che commons-configuration possa essere configurato per utilizzare effettivamente questa sintassi per la scrittura.


0

Un'altra opzione potrebbe essere quella di utilizzare uno dei formati di proprietà progettato per supportare valori multilinea.

XML può gestire bene le proprietà multi-riga, ma ha molto rumore.

MProps: è un esempio del formato con quasi nessuna formattazione speciale richiesta: https://github.com/mprops/mprops-java

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.