Deserialisierung von mehreren Objekten
kristin
- java
Hallo,
also, ich habe folgendes Problem:
ich schreibe in eine Datei mithilfe von serialisierung (objectOutputStream) mehrere Objekte vom selben Typ in eine Datei ab. Diese Objekte werden einzeln in die Datei geschrieben, also keine Array oder Collection. Nun will ich diese Objekte wieder aus der Datei bekommen.
Nun die entscheidende 1Euro-Frage: Wie bekomme ich ALLE Objekte aus der Datei, wenn ich nicht weiß, wieviele Objekte sich wirklich in der Datei befinden? Und wie kann ich alle Objekte in eine Collection packen, damit ich diese an eine andere Methode übergeben kann?
Ich danke dir schon jetzt...
kristin
Hi Kristin
Wenn ich deine Fehlerbeschreibung richtig Interpretiere, dann willst du deine Objekte persistent in eine Datei auslagern.
Wenn das zutrifft solltest du dir die Schreibarbeit ein wenig verkürzen
und auf xStream zurückgreifen. Diese Bibliothek lagert Objekte als
XML-Dateien aus.
Vielleicht hab ich dir ja geholfen ;-)
cu,
Ikaros
Hallo,
ich habe meine Objekte ja schon persistent in eine Datei ausgelagert. Das habe ich mit Hilfe der Serialisierung (ObjectOutputStream) schon gemacht und klappt auch. Aber nun bekomme ich die Objekte mit Hilfe von ObjectInputStream nicht mehr alle heraus. Ich bekomme ein Objekt heraus, aber nicht alle die in der Datei enthalten sind.
und bei folgendem Code spuckt er mir immer ne StreamCorruptedException bei folgender Zeile "re = (Rezept) objectIn.readObject();" aus:
private ObjectInputStream objectIn = new ObjectInputStream(new FileInputStream(sDatei));
List<Rezept> listeRezepte = new ArrayList<Rezept>();
Rezept re = (Rezept) objectIn.readObject();
while (re != null) {
listeRezepte.add(re);
re = (Rezept) objectIn.readObject();
}
List<Rezept> listeRezepte = new ArrayList<Rezept>();
Ich würde ArrayList<Rezept> listeReze... benutzen.