Was dieses Werkzeug tut
Verschachtelung wird zu Punkten, Listen werden zu Indizes:
db:
host: db.example.com
port: 5432
hosts:
- a
- b
db.host=db.example.com
db.port=5432
hosts[0]=a
hosts[1]=b
Die Form [i] ist die Spring-Konvention und die, die die meisten Leser erwarten.
Das Escapen ist die ganze Arbeit
Eine .properties-Datei ist trügerisch einfach, und drei ihrer Regeln fressen stillschweigend Daten.
Ein Wert, der mit einem Leerzeichen beginnt. Properties.load überspringt den Leerraum nach dem Trennzeichen, key= x liest sich also als x zurück. Das erste Leerzeichen wird escapt — key=\ x — und der Wert überlebt. Abschließende Leerzeichen bleiben, wie sie sind.
Ein Schlüssel, der mit # oder ! beginnt. Diese Zeile ist ein Kommentar. Der ganze Eintrag, Schlüssel und Wert, verschwindet beim Lesen. Diese beiden Zeichen werden escapt, wenn sie einen Schlüssel eröffnen.
=, : und Leerzeichen innerhalb eines Schlüssels werden ebenfalls escapt, und jeder Backslash auch. Ein Zeilenumbruch in einem Wert wird \n, ein Tabulator \t.
Zwei Schlüssel, die auf denselben Namen plätten
"a.b": 1
a:
b: 2
Beide ergeben a.b. Das Format kann sie nicht unterscheiden, und Properties.load behält den letzten — einer Ihrer beiden Werte wäre also fort, ohne dass etwas es sagt.
Die Umwandlung hält an und nennt den Schlüssel. Es ist der einzige Fall, in dem dieses Werkzeug ablehnt statt umzuwandeln, und der Fall, in dem Umwandeln lügen würde.
Es gibt keine Typen
Alles in einer .properties-Datei ist Text. true kommt als "true" zurück, 42 als "42", ein null als leerer Wert. Ihr Leser entscheidet über die Bedeutung: Boolean.parseBoolean, Integer.parseInt, und eine Entscheidung darüber, was leer heißt.
Ein Wort zur Kodierung
Die Ausgabe ist UTF-8-Text, mit Umlauten und allem. Das liest modernes Java, und das hat Properties.load(Reader) immer gelesen.
Aber Properties.load(InputStream) — der ältere, häufigere Aufruf — liest ISO-8859-1 und macht aus café Zeichensalat. Ist das Ihr Leser, wechseln Sie zur Reader-Überladung oder escapen Sie die Nicht-ASCII-Zeichen als \uXXXX, bevor Sie die Datei ausliefern.
Datenschutz ab Werk
Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.