# Objekte in Datei schreiben und auslesen



## Shinji (22. Mai 2004)

Hallo. Ich hoffe, ich stelle hier nicht ne Frage, die schon zig mal gestellt wurde. Ich habe zwar ähnliche Fragestellungen mit der Suchfunktion gefunden, aber bisher hat es mir nicht geholfen.
Folgendes Problem habe ich:
Ich erstelle gerade ein Programm, womit man Daten abspeichert ( in meinem Fall sind es Trading Cards ). Wie dem auch sei, es werden dabei verschiedene Attribute nachgefragt und dann innerhalb des Objekts "Karte" gespeichert. Die Objekte "Karte" werden dann in der Liste angehängt. Damit sich das aber auch lohnt, möchte ich diese Liste anschließend in einer Datei speichern und sie so zu einem späteren Zeitpunkt wieder laden/auslesen können.

Hier der Code:


```
public void serialize()
  	{	
    	try
    	{  	ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream
    		("H:/datenbank.ser",true));
      		o.writeObject(festeListe);
      		o.close();
    	}
    	catch ( IOException e ) { System.err.println( e ); }
  	}
  	
  	public void deserialize()
  	{	try
    	{	ObjectInputStream o = new ObjectInputStream(new FileInputStream
    		("H:/datenbank.ser"));
      		Kartenliste liste	= (Kartenliste) o.readObject();
      		o.close();
      		festeListe = liste.kopiere();

      	}
    	catch ( IOException e ) { System.err.println( e ); }
    	catch ( ClassNotFoundException e ) { System.err.println( e ); }
   	  	
  	}
```

Das Problem dabei ist, dass ich zwar serialize ausführen kann und er auch die Datei datenbank.ser anlegt, aber anscheinend nicht die gesamte Liste einspeichert. Egal wie viele Objekte in der Liste enthalten sind, die Größe der Datei ist immer gleich.

Beim deserializen kommt dann auch eine NullPointerException. Anmerkung: Bei allen beteiligten Klassen wurde Serializable implementiert. Mit dem Befehl liste.kopiere() wird eine Kopie der Liste erstellt und zurückgegeben ( Methode befindet sich in der Klasse Kartenliste ).

Danke schon mal für Ratschläge


----------



## Guest (23. Mai 2004)

Hallo,

versuche es doch einmal mit "H:\\datenbank.ser"


----------



## Shinji (23. Mai 2004)

Also es lag, denk ich ma, nicht an der Pfadangabe, da ja immer eine Datei erstellt  wurde.
Habe das Problem anscheinend gelöst. Bei mir ist die Klasse Kartenliste von der Klasse Sortierliste abgeleitet, die wiederum als Oberklasse die Klasse Liste hat. Hab aus Versehen 
	
	
	
	





```
implements Serializable
```
 in der Sortierlist eingetragen und nicht in der Liste. Deswegen kam es wohl zu Komplikationen.


----------

