2016-05-17 22 views
0

Wenn ich den folgenden Code ausführen, das ObjIn.readObject(); wirft eine Ausnahme:ObjectInputStream.readobject() löst Objekt in Ausnahme

ClassNotFoundException project.Edge

Die project.Edge das Objekt, die ich versuche, ist aus der Datei zu lesen.

Object o = null; 
ObjectInputStream objIn = null; 
try { 
    objIn = new ObjectInputStream(new FileInputStream("objects.dat")); 
    o = objIn.readObject(); 
} catch (Exception ex) { 
    ex.printStackTrace(); 
} 
while (o != null) { 
    //do stuff 
} 
+2

Die Ausnahme ist nicht seltsam, Sie sollten 'ex.printStackTrace()' anstelle von 'System.out.println (ex.getMessage());' aufrufen, um zu sehen, was es ist. – biziclop

+0

'readObject()' lädt nur die Daten einer Klasse, nicht die Klasse selbst. Daher müssen alle in objects.dat verwendeten oder referenzierten Klassen in Ihrem Projekt verfügbar sein. – Robert

Antwort

0

Wenn Sie dieses Problem haben, überprüfen Sie, ob der Projekt.Edge im selben Paket ist wie beim Schreiben der Binärdatei.

2

Vielleicht ist Ihr project.Edge Klasse nicht richtig zusammengestellt. Überprüfen Sie auch Ihren Klassenpfad, diese Klasse muss in Ihrem Projekt verfügbar sein.