Hallo!
Habe ein ganz großes Problem. Ich bitte um eure Hilfe! Ich will mehrer Objekte einer Liste hinzufügen und diese dann serialisieren:
Nachdem ich die Liste serialisiert habe, möchte ich das Objekt löschen oder besser gesagt die Referenz löschen. Es kommt aber zu eine NullPointerException. Das müsste doch eigentlich irrelevant sein, da ich mit "LinkedList buchsammlung=(LinkedList)ois.readObject();" eine neue Referenz erzeuge.Außerdem, wenn ich die Operation "laden" aufrufe, gibt er mir nur ein Objekt zurück, anstatt alle drei. Dieser Algorithmus müsste doch so richtig sein:
Bitte helft mir! Ich bin verzweifelt.[/quote]
Habe ein ganz großes Problem. Ich bitte um eure Hilfe! Ich will mehrer Objekte einer Liste hinzufügen und diese dann serialisieren:
Code:
import java.io.*;
import java.util.*;
class Bibliothek implements Serializable
{
public String titel;
public String verlag;
public String autor;
static LinkedList buchsammlung;
public Bibliothek(String titel, String verlag, String autor)
{
this.titel=titel;
this.verlag=verlag;
this.autor=autor;
}
public void liste()
{
try
{
buchsammlung=new LinkedList();
buchsammlung.add(this);
}
catch(Exception e)
{
System.out.println("Fehler aufgetreten!");
}
}
public static void speichern(String datei)
{
try
{
FileOutputStream fos=new FileOutputStream(datei);
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(buchsammlung);
oos.close();
}
catch(Exception e)
{
System.out.println("Fehler aufgetreten!");
}
buchsammlung=null;
}
public static void laden(String datei)
{
try
{
FileInputStream fis=new FileInputStream(datei);
ObjectInputStream ois=new ObjectInputStream(fis);
LinkedList buchsammlung=(LinkedList)ois.readObject();
}
catch(Exception e)
{
System.out.println("Fehler aufgetreten!");
}
Iterator it=buchsammlung.iterator();
while(it.hasNext())
{
Bibliothek bib=(Bibliothek)it.next();
System.out.println("Titel: "+bib.titel+"\nVerlag: "+bib.verlag+"\nAutor: "+bib.autor);
System.out.println("- - - - - - - - - - - - - - - ");
}
}
public static void main(String[] args)
{
try
{
Bibliothek bib=new Bibliothek("Herr der Ringe","Sinnlos im Weltall","Captain Pica");
Bibliothek bib1=new Bibliothek("Generation X", "Douglas Coupland","Vista");
Bibliothek bib2=new Bibliothek("Dilbert Future","Scott Adams","Heine");
bib.liste();
bib1.liste();
bib2.liste();
speichern("Buecherliste.ser");
laden("Buecherliste.ser");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}
Nachdem ich die Liste serialisiert habe, möchte ich das Objekt löschen oder besser gesagt die Referenz löschen. Es kommt aber zu eine NullPointerException. Das müsste doch eigentlich irrelevant sein, da ich mit "LinkedList buchsammlung=(LinkedList)ois.readObject();" eine neue Referenz erzeuge.Außerdem, wenn ich die Operation "laden" aufrufe, gibt er mir nur ein Objekt zurück, anstatt alle drei. Dieser Algorithmus müsste doch so richtig sein:
Code:
while(it.hasNext())
{
Bibliothek bib=(Bibliothek)it.next();
System.out.println("Titel: "+bib.titel+"\nVerlag: "+bib.verlag+"\nAutor: "+bib.autor);
System.out.println("- - - - - - - - - - - - - - - ");
}
Bitte helft mir! Ich bin verzweifelt.[/quote]