Hallo,
ich möchte über eine Propertiedatei ein paar Werte einlesen.
das Problem ist, dass ich immer nur die letzten Werte angezeigt bekomme. Wahrscheinlich bin ich heute morgen noch nicht wach genug
(
meine Textdatei besteht zb aus:
Name=ich
Alter=1
Name=du
Alter=2
Name=wir
Alter=3
Mein quellcode dazu:
FileInputStream fis = new FileInputStream(filename);
Properties p = new Properties();
p.load(fis);
fis.close();
System.out.println(p.getProperty("Name"));
System.out.println(p.getProperty("Alter"));
Als Ergebnis bekomme ich:
wir
3
Ideen??
Steffi
meine Textdatei besteht zb aus:
Name=ich
Alter=1
Name=du
Alter=2
Name=wir
Alter=3
Als Ergebnis bekomme ich:
wir
3
In einer Hashtable ist der Key immer unique. Daher
werden die Werte fuer Name und Alter immer ueberschrieben
bzw. neu angelegt.
Fuer Name und Alter wird dann eben nur der zuletzt
gelesene Wert gespeichert.
Gruss, Patrick
hm, und was kann man stattdessen nehmen??
steffi
In einer Hashtable ist der Key immer unique. Daher
werden die Werte fuer Name und Alter immer ueberschrieben
bzw. neu angelegt.
Fuer Name und Alter wird dann eben nur der zuletzt
gelesene Wert gespeichert.
Gruss, Patrick
hm, und was kann man stattdessen nehmen??
Ich wuerde erstmal versuchen die .properties Datei zu aendern.
Name.1=ich
Alter.1=1
Name.2=du
Alter.2=2
Name.3=wir
Alter.3=3
Sollte das nicht gehen, ist es schwierig, da du ja keine
Verbindung von Name und Alter hast.
Du muesstest die Datei erstmal so auslesen und dir die
Key/Value-Paare selbst basteln.
Z.B. jede ungerade Zeile in „String[] keys“ und jede gerade
Zeile in „String[] values“. Danach dann
myHashtable.put(keys[i], values[i]);
Eine bessere Idee habe ich im Moment nicht. Versuche
halt was an der .properties Datei zu machen. Das waere
am einfachsten.
Gruss, Patrick
hm, und was kann man stattdessen nehmen??
ich.alter = 2
du.alter = 3
wir.alter = 4
(mach ich zumindest so, ist so schön erweiterbar)
Oder gleich XML.
cu
ich habe das jetzt anders gelöst. Ich schreibe ein RandomAccessFile und lese das dann aus.
steffi