# Speichern größerer Datenmengen // XML vs. Serializing .



## Molt (22. Sep 2007)

Moin,
ich möchte relativ große Datenmengen mit einer recht komplexen Datenstruktur speichern.
Könnte jedoch sein, dass sich die Datenstruktur im Laufe der Zeit ein wenig ändert.

In welchem Format speicher ich die Daten nun idealerweise?
Wenn ich die javainterne Methode nutze, habe ich das Problem nach Änderung der Datenstruktur ältere Files nicht mehr einlesen zu können, gel?

Bietet sich da XML an oder vielleicht noch eine andere Methode?


Hoffe, ich bin im richtigen Subforum 
Besten Dank im Voraus


----------



## Wildcard (23. Sep 2007)

Also für große Datenmengen ist XML nicht sehr prall, Serialisierung aber auch nicht. Welcher Art sind die Daten?


----------



## abollm (23. Sep 2007)

Molt hat gesagt.:
			
		

> Moin,
> ich möchte relativ große Datenmengen mit einer recht komplexen Datenstruktur speichern.
> Könnte jedoch sein, dass sich die Datenstruktur im Laufe der Zeit ein wenig ändert.
> 
> ...



Einige Fragen und Anmerkungen zu deinem Postnig:

1. Was genau verstehst du unter großen Datenmengen (z.B. ca. mehrere 100 KB, mehrere MB oder noch größere Datenmengen)?
2. Wie komplex sind deine Daten?
3. In Abhängigkeit der Antwort zu 1. und ggf. zu 2. könnte man ggf. XML als Datenformat empfehlen. XMl ist immer dann zu empfehlen, wenn Daten beispielsweise ausgetauscht werden oder von einem Datenformat in ein anderes gewandelt werden müssen.
4. Eine XML-Struktur zu wandeln, zu ergänzen oder zu erweitern stellt im Regelfalle kein großes Problem dar.
5. Es gibt auch DB-Systeme, in die du direkt XML-Strukturen speichern kannst.

Es ist ziemlich schwer, ohne nähere Angaben über den genauen Anwendungszweck klare Empfehlungen zu geben.


----------



## Molt (23. Sep 2007)

abollm hat gesagt.:
			
		

> 1. Was genau verstehst du unter großen Datenmengen (z.B. ca. mehrere 100 KB, mehrere MB oder noch größere Datenmengen)?


Es sind etliche gleichstukturierte Dateien mit jeweiligen Größen von ca. 1-5 MB



			
				abollm hat gesagt.:
			
		

> 2. Wie komplex sind deine Daten?


Es ist schon eine recht ausufernde Datenstruktur - würde nur für Daten mit 10 Haupt mit insgesamt 60-80 Unterklassen rechnen



			
				abollm hat gesagt.:
			
		

> 3. In Abhängigkeit der Antwort zu 1. und ggf. zu 2. könnte man ggf. XML als Datenformat empfehlen. XML ist immer dann zu empfehlen, wenn Daten beispielsweise ausgetauscht werden oder von einem Datenformat in ein anderes gewandelt werden müssen.


Ich lese Daten aus einer recht unstrukturierten txt-Datei aus und lege sie in der o.g. Datenstuktur ab. Diese möchte ich halt auch speichern und bei Bedarf wieder im ursprünglichen Format abspeichern.



			
				abollm hat gesagt.:
			
		

> 4. Eine XML-Struktur zu wandeln, zu ergänzen oder zu erweitern stellt im Regelfalle kein großes Problem dar.


Das Speicherformat sollte in jedem Fall Veränderungen abkönnen ohne, dass ich für jede kleine Änderung einen Konverter o.ä. bauen muss.



			
				abollm hat gesagt.:
			
		

> 5. Es gibt auch DB-Systeme, in die du direkt XML-Strukturen speichern kannst.


Mir geht es keinewegs darum, XML irgendwie zwangsläufig zu nutzen. Es erschien mir nur recht strukturiert und dadurch übersichtlich.

Welche anderen Möglichkeiten schlagt ihr denn vor?
Ich weiß, dass dieses Projekt recht groß ist, wenn man noch nicht wirklich mit verschiedenen Arten der Datenspeicherung gearbeitet hat - aber dieses Projekt motiviert mich deutlich mehr als irgendwelche kleineren pädagogisch sinnvolleren, aber nutzlosen Testversuche 


Besten Dank schonmal für eure Antworten


----------



## chris_ (27. Sep 2007)

Hi, ich klink mich mal ein. Gleichartiges Problem 

Ich nutze XStream zum Serialisieren von Objekten -> XML
Nun hat mein Objekt auch das Attribut ImageIcon im.
Es wird nun das Byte Array des Images gespeichert in der XML, ich denke dass ist aber nicht optimal.

Was kann ich son tun? 
Ist es sinnvoll einen extra Ordner zu ersetllen und da die Bilder rein und referenz Dazu speichern?

Es sind ca 500 Einträge mit 6 primären Datentypen (int,String) und diese lade ich als Vektor bzw Serialisiere sie als Vektor. Ist das Sinnvoll oder frisst das zu viel speicher? 
Alternative wäre zur Laufzeit das passende Objekt aus der Datei lesen.

Gruß ,
Chris


----------



## Bloody-Angle (29. Sep 2007)

hi ich ich würde mich auch mal gern einklinken ^^ 

bei meinem problem handelt es sich um mehrere komplexe zweidimensionale Arrays mir jeweils ca 4 atributen die wiederum mit weiteren daten vernetzt sind 

(habe einen Array zweidimensional  von Feldern und jedes Feld hat eine zahl, eine boolchen wert und einen besitzer(spieler der hat wiederrum ca 6 atribute hat)+ eine Fareb beim Feld jetzt ) 

ich denke das heir auch eher serialisierung angebracht wäre doch leider scheint das nicht zu gehn dank der vielen untereinander verlinkten daten zumindest habe ich es verscuht und es ging nich 

also habe ich mir überlegt auf XML umzusteigen aber die Frage ist gibt es noch andere Altanativen?

danke im voraus^^


----------

