Wie schreibe ich einen mehrzeiligen Eigenschaftswert mit PropertiesConfiguration?

99

Ich habe eine Eigenschaftendatei mit einer Eigenschaft mit einem Listenwert (durch Kommas getrennt). Wie schreibe ich diese Eigenschaft in mehrere Zeilen? (Backslash nach dem Komma)?

Ich kann nichts darüber finden oder zumindest darüber, Komma zu Komma und Backslash zu entkommen.

Uhkkgjhfjf Jgkjkhj
quelle
1
Können Sie bitte klarstellen, ich bin nicht sicher, was Sie versuchen zu tun
Aviram Segal
1
Ich habe eine Eigenschaft, die einen mehrzeiligen Wert hat, z. B.: Key1 = val1, \ val2, \ val3 key2 = hallo val1, val2, val3 stehen in separaten Zeilen, aber wenn PropertiesConfigurations sie in eine Datei schreibt, werden sie in eine geschrieben Linie
Uhkkgjhfjf Jgkjkhj
Ah, Sie sprechen darüber, wie es schreibt ... ok
Aviram Segal

Antworten:

26

Überprüfen Sie das Benutzerhandbuch auf Eigenschaftendateien :

Sonderzeichen und Flucht :

Wenn Sie in einer Eigenschaft wie einem Zeilenvorschub, einer Tabelle oder einem Unicode-Zeichen ein Sonderzeichen benötigen, können Sie es mit derselben Escape-Notation angeben, die für Java-Zeichenfolgen verwendet wird. Das Listentrennzeichen (standardmäßig ",") kann auch maskiert werden:

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

Backslashes sind schwieriger.

Listen und Arrays :

Sie können eine Liste von Werten in Ihrer Eigenschaftendatei angeben, indem Sie denselben Schlüssel in mehreren Zeilen verwenden:

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

Sie müssen das \nZeichen im Inhalt und den Zeilenfortsetzungs-Escape ( \<eol>am Zeilenende) kombinieren , damit eine mehrzeilige Eigenschaft tatsächlich in der Eigenschaftendatei und im zurückgegebenen Wert dargestellt wird:

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

Ich bin mir nicht sicher, ob die Commons-Konfiguration so konfiguriert werden kann, dass diese Syntax tatsächlich zum Schreiben verwendet wird.

eckes
quelle
0

Eine andere Möglichkeit könnte darin bestehen, eines der Eigenschaftenformate zu verwenden, das mehrzeilige Werte unterstützt.

XML kann gut mit mehrzeiligen Eigenschaften umgehen, weist jedoch viel Rauschen auf.

MProps: ist ein Beispiel für das Format, für das fast keine spezielle Formatierung erforderlich ist: https://github.com/mprops/mprops-java

Mikhail Fursov
quelle