XStream + allgemein Objekte und dessen relatios speichern

lordcarlos

Mitglied
Moin.

ich habe Zwei klassen, davon habe ich ein paar tausend Objecte die ich gerne speichern und zu einem spaeteren zeitpunkt wieder lesen will um damit weiter zu arbeiten.

Java:
public class Fenster {

 private String Farbe = "blau";

}
Java:
public class Haus {

 private ArrayList<Fester> fensters = new ArrayList();

}

Ein Fester kann aber auch in mehreren Haeusern verbaut sein.
Also wenn ich ein neues Fenster erstelle kommt es erstmal in eine Liste wo alle anderen fester sind.
Es gibt auch eine Liste mit den verschiedenen haesern.

Java:
private ArrayList<Haus> HausListe = ..
private ArrayList<Fester> FensterListe = ...
Soweit so gut, wenn ich jetzt ein Fenster aus der FensterListe aendere, wird es ja auch in der Liste aus einem haus geaendert.

Wenn ich die beiden Listen jetzt aber mit XStream in XML umschreibe, speichere und wieder einlese ist es nicht mehr so. Dann sind die Objecte aus der FensterListe andere als die in den Haeusern.

Java:
XStream xstream = new XStream();
Writer out = null;
out = new OutputStreamWriter(new FileOutputStream("HausList.xml"));
xstream.toXML(HausList, out);
// Und dann das gleiche mit mit den Fenstern.
lesen:
Java:
XStream xstream = new XStream();
fis = new FileInputStream("HausList.xml");
HausList = (ArrayList<Haus>) xstream.fromXML(fis);
// Und dann das gleiche mit Fenstern.

Kann man das was ich will ueberhautp mit XStream realisieren?

TL;DR: Ich will Objecte und deren relations (heist das so?) Speicher und wieder lesen. Das ganze moeglichst simple, muss nicht XML sein, aber wenn es geht ohne SQL Server.
 

lordcarlos

Mitglied
Ja, das kenne ich. Aber so wie ich das verstanden habe beschreibt es einfach wie es die references in der XML datei schreibt und wie man es aendern kann.
Aber ich habe ja immernoch zwei ArrayListen die in zwei daten geschrieben werden.
Sollte ich vielleicht eine Klasse erstellen die die beiden ArrayListen enthaelt und dann und das object dieser klasse dann als XML speichern?

Kurz: es muessen zwei ArrayListen gespeichert/gelesen werden mit Objecten die Referenzen zueinander haben.
(Oder sagt mir einfach was ihr benutzt, was simples wird gesucht.)

Danke schonmal fuer die Hilfe.
 

Ullenboom

Bekanntes Mitglied
Ich benutzte XStream auch, das ist ein Tacken schneller als JAXB.

In deinem Fall würde ich eine Containerklasse definieren, so was wie Stadt, weil ja da die Häuser und Strassen vorkommen.
 

Ähnliche Java Themen


Oben