Ваш код в основном правильный, но есть одна ошибка и пара вещей, которые могут заставить его работать лучше.Я выделил их звездочками (поскольку, по-видимому, я не могу выделить их жирным шрифтом в режиме «кода»).
public void createSerialisable() throws IOException
{
FileOutputStream fileOut = new FileOutputStream("theBkup.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(allDeps);
**out.flush();** // Probably not strictly necessary, but a good idea nonetheless
**out.close();** // Probably not strictly necessary, but a good idea nonetheless
options();
}
public void readInSerialisable() throws IOException
{
FileInputStream fileIn = new FileInputStream("theBKup.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
try
{
**// You only wrote one object, so only try to read one object back.**
allDeps = (ArrayList) in.readObject();
}
catch (IOException exc)
{
System.out.println("didnt work");
**exc.printStackTrace();** // Very useful for findout out exactly what went wrong.
}
}
Надеюсь, это поможет.Если проблема все еще возникает, убедитесь, что вы опубликовали трассировку стека и полный, автономный, компилируемый пример, демонстрирующий проблему.
Обратите внимание, что я предположил, что allDeps
содержит объекты, которые на самом делеSerializable
и ваша проблема в readInSerialisable
, а не в createSerialisable
.Опять же, трассировка стека была бы чрезвычайно полезна.