EOFException und andere Probleme
-
Hi.
Also ich habe mir da ein kleines Programm geschrieben in dem ich Spaßens halber einfach mal nen bisschen
Serialisierung verwendet habe. Also das Programm ist eine Art kleiner Terminkalender, der mich immer an
bestimmte Sachen erinnern soll. Nun habe ich folgende Klasse gschrieben um Termine in einer Liste zu speichern
und wenn sie dann gespeichert werden sollen, zu serialisieren:import java.io.*; import java.util.*; class AppointmentList implements Serializable { LinkedList list = new LinkedList(); // Speichert appointment-Objekte public AppointmentList() { } public final void add(Object object) { list.add(object); } public final Object get(int index) { return list.get(index); } public final void remove(int index) { list.remove(index); } public final int size() { return list.size(); } }
Nun das Speichern an sich scheint zumindest zu klappen, aber hier mal der code der Speicher-
methode der Hauptklasse:public final void saveAppointments() { try { FileOutputStream file = new FileOutputStream("Appointments.rd"); ObjectOutputStream os = new ObjectOutputStream(file); os.writeObject(appointments); os.close(); } catch (IOException e) { System.err.println(e.toString()); } }
Nun, wenn ich aber mit folgender Methode das ganze wieder laden will, wird irgendeine
EOFException geworfen und ich habe keinen Plan warum:public final void loadAppointments() { try { FileInputStream file = new FileInputStream("Appointments.rd"); ObjectInputStream is = new ObjectInputStream(file); appointments = (AppointmentList) is.readObject(); // 1 return; } catch (IOException e) { System.err.println(e.toString()); } catch (ClassNotFoundException e2) { System.err.println(e2.toString()); } appointments = new AppointmentList(); // 2 }
So das finde ich erstmal blöd, kann mir jemand helfen?
So und nun noch eine Sache, obwohl diese Exception geworfen wird und in <1> kein appointment-Objekt erstellt
wird, kann mir mein Programm dennoch mit dem in <2> erzeugten Objekt alle Termine angeben!
Wie kann das sein..?Danke!
-
Schuss ins blaue:
Schon getestet ob du nicht eventuell eine null referenz
serilizierst?Das würde EOF erklären wenn du null wieder einlesen willst.
Ich könnte wetten das ist so, hau mich aber nicht wenn ich
falsch liege