Ich habe Probleme mit meinem Code. Wenn ich readObject in meinem Code verwende, erhalte ich eine IOException. Die Anwendung wird normal ausgeführt, aber wenn ich versuche, readObject zu verwenden, erhalte ich eine Ausnahme; Hier ist der Code, den ich zum Speichern von Objekten verwende:
und hier ist der Code, den ich zum Wiederherstellen von Objekten verwende:
und das Ergebnis in der Konsole:
Java:
File f = new File("employees.obj");
ObjectOutputStream objOut = null;
try {
objOut = new ObjectOutputStream(new BufferedOutputStream(
new FileOutputStream(f)));
objOut.writeObject(newEmployee);
objOut.flush();
System.out.println("Object is serialized.");
} catch (FileNotFoundException e) {
System.out.println("File not found!");
} catch (IOException e) {
System.out.println("Failed!");
} finally {
if (objOut != null) {
try {
objOut.close();
} catch (IOException e) {
}
}
}
und hier ist der Code, den ich zum Wiederherstellen von Objekten verwende:
Java:
File f = new File("employees.obj");
ObjectInputStream objIn = null;
ArrayList<Employee> c = new ArrayList<Employee>();
try {
objIn = new ObjectInputStream(new BufferedInputStream(
new FileInputStream(f)));
while (objIn.readObject() != null) {
Person employee = (Person) objIn.readObject();
System.out.println("hello");
System.out.println(employee.toString());
}
System.out.println(c.toString());
return c;
} catch (FileNotFoundException e) {
System.out.println("1");
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
System.out.println("3");
} catch (ClassCastException e) {
System.out.println("4");
} finally {
if (objIn != null) {
try {
objIn.close();
} catch (IOException e) {
System.out.println("4");
}
}
}
return c;
und das Ergebnis in der Konsole:
Java:
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2553)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1296)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
at org.bihe.DeSerializer.deSerializeEmployees(DeSerializer.java:20)
at org.bihe.Main.enterAsManager(Main.java:238)
at org.bihe.Main.menu(Main.java:92)
at org.bihe.Main.main(Main.java:50)