Comment écrire une valeur de propriété sur plusieurs lignes à l'aide de PropertiesConfiguration?

99

J'ai un fichier de propriétés avec une propriété avec une valeur de liste (séparée par des virgules), comment écrire cette propriété sur plusieurs lignes? (barre oblique inverse après la virgule)?

Je ne trouve rien à ce sujet ou du moins à échapper la virgule à la virgule et à la barre oblique inverse.

Uhkkgjhfjf Jgkjkhj
la source
1
Pouvez-vous s'il vous plaît clarifier, je ne suis pas sûr de ce que vous essayez de faire
Aviram Segal
1
J'ai une propriété qui a une valeur multi-lignes, par exemple: key1 = val1, \ val2, \ val3 key2 = bonjour val1, val2, val3 sont dans des lignes séparées, mais lorsque PropertiesConfigurations les écrit dans un fichier, il les écrira dans un line
Uhkkgjhfjf Jgkjkhj
ah vous parlez de la façon dont il l'écrit ... ok
Aviram Segal

Réponses:

26

Consultez le Guide de l' utilisateur pour les fichiers de propriétés :

Caractères spéciaux et échappements :

Si vous avez besoin d'un caractère spécial dans une propriété comme un saut de ligne, une tabulation ou un caractère Unicode, vous pouvez le spécifier avec la même notation d'échappement utilisée pour les chaînes Java. Le séparateur de liste ("," par défaut), peut également être échappé:

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

Les contre-obliques sont plus difficiles.

Listes et tableaux :

Vous pouvez spécifier une liste de valeurs dans votre fichier de propriétés en utilisant la même clé sur plusieurs lignes:

# chart colors
colors.pie = #FF0000;
colors.pie = #00FF00;
colors.pie = #0000FF;
Arend contre Reinersdorff
la source
15

Vous devez combiner le \ncaractère à l'intérieur du contenu et l'échappement de continuation de ligne ( \<eol>à la fin de la ligne) pour qu'une propriété multi-lignes soit réellement représentée dans le fichier de propriétés et dans la valeur renvoyée:

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

Je ne sais pas si commons-configuration peut être configuré pour utiliser réellement cette syntaxe pour l'écriture.

eckes
la source
0

Une autre option pourrait être d'utiliser l'un des formats de propriétés qui est conçu pour prendre en charge les valeurs multilignes.

XML peut bien gérer les propriétés multilignes, mais il a beaucoup de bruit.

MProps: est un exemple du format avec presque aucun formatage spécial requis: https://github.com/mprops/mprops-java

Mikhail Fursov
la source