Speichern und laden via XML

Nud3l

Mitglied
Hallo

ich habe eine Programm geschrieben das irgendwas verwaltet nun möchte ich das gerne Speichern und laden.

Nur bin ich mir Unsicher wie ich das machen soll erst wollte ich serialisieren nun wurde mir davon abgeraten da sich das Model verändern kann und so ältere Daten nicht mehr geladen werden können

Dies soll aber in xml gehen nur habe ich ein Problem wie ich das anstelle habe noch keine Erfahrung mit xml .. Wie und wo fange ich am besten an nach zu lesen oder hat einer ein Beispiel code?
 
Natoll nach dem ich mein Projekt weiter entwickelt habe klappt JAXB nicht mehr da ich eine schreibgeschützte Klasse verwende in der kein default constructor existiert...

Wie sieht es denn bei den anderen Möglichkeiten aus ? Kann ich da an meiner schreibgeschützten Klasse auch Probleme bekommen?
 
Ein privater Konstruktor sollte eigentlich schon reichen.

Ansonsten kannst du dir nen eigenen Handler basteln der der ne Instanz erstellt.
 
Ein privater Konstruktor sollte eigentlich schon reichen.

Ansonsten kannst du dir nen eigenen Handler basteln der der ne Instanz erstellt.

hmm wie privater Konstruktor? ich darf die Datei nicht verändern.. also auch kein Konstruktor hinzu fügen..

Das ganze ist wieso voll komisch nur weil irgendwo ein get auf der Klasse aufgerufen wird will JAXB das ganze ding speichern
 
hmm irgedn wie klappt bei mir Xstream nicht ich bekomme folgende Fehler meldung

Error Massage:
Code:
com.thoughtworks.xstream.mapper.CannotResolveClassException:
sbh.ocit.mockups.model.MDomain : sbh.ocit.mockups.model.MDomain
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:68)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:71)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:86)

MY code: serialize:
Code:
MDomain speicherMDomain = OcitsimulationSingleton.getInstance().getLnkDomain();
XStream xstream = new XStream(new DomDriver());
FileOutputStream fs = new FileOutputStream(selected);
xstream.toXML(speicherMDomain, fs);


deserialize
Code:
XStream xstream = new XStream(new DomDriver());
FileInputStream fis = new FileInputStream(selected);
MDomain mDomainRead = (MDomain) xstream.fromXML(fis);

Irgendwie am Code kann es nicht liegen oder? in den paar Zeilen kann man nicht viel Falsch machen
 

Neue Beiträge

Zurück