Post by Patrick RoemerHallo,
Post by Joachim KarrerMich wundert allerdings, dass es noch kein "Properties.load(Reader)" und
das passende Gegenstück gibt... immer muss man alles selber machen, echt
blöd.)
Das gibt es aus gutem Grund nicht, weil ein Reader ggfs. mit dem Inhalt
| When saving properties to a stream or loading them from a stream, the
| ISO 8859-1 character encoding is used. For characters that cannot be
| directly represented in this encoding, Unicode escapes are used; [...]
(Properties API-Doc)
Mit allen Problemen die dabei auftauchen:
| "[...]however, only a single 'u' character is allowed in an escape
| sequence. The native2ascii tool can be used to convert property files to
| and from other character encodings."
Aua... das schreit nach "deprecation" (sprich, diese Klasse gehört
deprecated) und nach Einführen einer Properties-Klasse, welche mit dem
(neueren/anderen) Konzept der Reader/Writer arbeitet.
aber: immer muss man alles selber machen.
man könnte ja Properties ableiten und neue load/store bauen, die dann aus
einem Reader heraus parsen und in einen Writer schreiben kann...
aber warum ist das parsen keine eigene Methode, z.B. "putLine ( String u );"
mit u einem String mit "=" in der Mitte und alle Leerzeilen und Kommentare
ignoriert. wäre doch auch nicht schlecht, wenn man mit
"(Properties)p.putLine("Ich=binDoof");" setzen könnte und das automatisch
geparsed würde... Code-reuse at its best...
oder sowas (setProperty(), getProperty(), putLine(), propertyNames()) in
einer (evtl. abstrakten) "Properties"-Klasse, die load und save weder
spezifiziert noch implementiert...
load, save und list dann über eine Util-Klasse statisch... (als
loadFromInputStream( Properties p, InputStream is), loadFromReader (
Properties p, Reader r), saveToWriter/listToWriter ( Writer w)...)
Dann wär aber wieder kaum ein signifikanter Unterschied zur Hashtable...
(bis auf die "genormten/gestringten" Keys...)
naja... anscheinend erwarte ich echt zu viel...
Ist halt auch echt blöd, wenn sowas so lange dabei sein muss... und es ist
ja nicht gerade eine unwichtige Klasse... (s. System.properties)
Gruss
Joachim