Hi Folks,
hab ein kleines Problem, hatte zwar hier schon mal eine Lösung zu einem ähnlichen Problem, aber die Lösung funktioniert leider nicht...
hier das Problem
ich habe Objekte vom Typ "raum", die. solange das program läuft, in einer Linked List untergebracht sind:
während des programs werden die räume folgendermaßen in die liste eingetragen:
das geht prima, ich kann mir die liste der räume ansehen und ich kann sie speichern, so:
das geht auch prima...
leider kann ich nur noch das erste objekt von raeume.dat laden
ich würde sie aber gerne alle laden um sie wieder in eine Linked List zu schreiben
hier ist mein (nicht funktionierender) Vorschlag:
aber leider kommt beim zweiten befehl in der whileschleife ein fehler und es ist nur das erste objekt in der liste...
vielleicht kann mir jemand weiterhelfen
danke schonmal im voraus
gruß
stephan
hab ein kleines Problem, hatte zwar hier schon mal eine Lösung zu einem ähnlichen Problem, aber die Lösung funktioniert leider nicht...
hier das Problem
ich habe Objekte vom Typ "raum", die. solange das program läuft, in einer Linked List untergebracht sind:
Code:
static List raum_liste = Collections.synchronizedList(new LinkedList());
während des programs werden die räume folgendermaßen in die liste eingetragen:
Code:
static void neuerRaum()
{
try
{
raum der_neue_raum = new raum();
der_neue_raum.neuRaum();
raum_liste.add(der_neue_raum);
}
catch(Exception e)
{
System.out.println("Fehler bei neuerRaum");
}
}
Code:
static void speichereRaeume()
{
raum schreib_raum = new raum();
try
{
System.out.print("...speichere Räume...");
ObjectOutputStream raum_out = new ObjectOutputStream(new FileOutputStream("e:\\java\\oop\\freaks\\stundenplaneditor\\raeume.dat", true));
for(int i=0; i<raum_liste.size(); i++)
{
schreib_raum = (raum) raum_liste.get(i);
raum_out.writeObject(schreib_raum);
}
raum_out.close();
System.out.print("gespeichert");
}
catch(Exception e)
{
System.out.print("Fehler bei raumspeichern");
}
}
das geht auch prima...
leider kann ich nur noch das erste objekt von raeume.dat laden
ich würde sie aber gerne alle laden um sie wieder in eine Linked List zu schreiben
hier ist mein (nicht funktionierender) Vorschlag:
Code:
static void ladeRaeume()
{
raum ein_raum = new raum();
try
{
System.out.print("\n...lade Räume...");
ObjectInputStream raum_in = new ObjectInputStream(new FileInputStream ("e:\\java\\oop\\freaks\\stundenplaneditor\\raeume.dat"));
FileInputStream fis = new FileInputStream("e:\\java\\oop\\freaks\\stundenplaneditor\\raeume.dat");
ein_raum = (raum) new ObjectInputStream(fis).readObject();
while(ein_raum != null)
{
raum_liste.add(ein_raum);
ein_raum = (raum) new ObjectInputStream(fis).readObject();
}
System.out.print("geladen1");
}
catch(EOFException ende)
{
System.out.print("geladen2");
}
catch(FileNotFoundException e)
{
System.out.println("raeume.dat ist nicht vorhanden\n");
}
catch(Exception e)
{
System.out.println("\nFehler bei Räume laden");
}
}
aber leider kommt beim zweiten befehl in der whileschleife ein fehler und es ist nur das erste objekt in der liste...
vielleicht kann mir jemand weiterhelfen
danke schonmal im voraus
gruß
stephan