Ich möchte eine Funktion zum Speichern/Laden in meiner Klasse. Ich habe eine private Unterklasse erstellt, in der alle Daten gespeichert werden, die ich speichern möchte.Serialisieren/Deserialisieren eines Unterklassenobjekts in einer Methode in Java
public class MyClass {
private class Progress implements Serializable {
private static final long serialVersionUID = 1L;
boolean val1 = true;
int val2 = 0;
ArrayList<String> list = new ArrayList<String>();
}
private Progress progress = new Progress();
public void loadProgress() {
progress = null;
try
{
FileInputStream fileIn = new FileInputStream("./tmp/progress.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
progress = (Progress) in.readObject();
in.close();
fileIn.close();
}catch(IOException i)
{
i.printStackTrace();
return;
}catch(ClassNotFoundException c)
{
System.out.println("Progress class not found");
c.printStackTrace();
return;
}
}
public void saveProgress() {
try
{
File f = new File("./tmp/progress.ser");
f.getParentFile().mkdirs();
FileOutputStream outputstream = new FileOutputStream(f);
ObjectOutputStream out = new ObjectOutputStream(outputstream);
out.writeObject(progress);
out.close();
outputstream.close();
}catch(IOException i) {
i.printStackTrace();
}
}
}
Aber wenn ich diesen Code ausprobieren mag, gibt es mir java.io.NotSerializableException Ausnahme in der saveProgress() -Methode, und aus diesem Grunde, der loadProgress() -Methode nicht zu arbeiten. Wie kann ich diese Klasse serialisieren?