我一直在尝试保存并加载一个对象,但它无法正常工作。当我告诉它保存时,我有这个:
public void doSave(View v) {
ObjectOutputStream out;
try {
FileOutputStream outFile = new FileOutputStream("testThingy321.ser");
out = new ObjectOutputStream(outFile);
out.writeObject(hero);
out.close();
outFile.close();
} catch (Exception e) {e.printStackTrace();}
}
当我告诉它加载时,我有这个:
try {
FileInputStream fileIn = new FileInputStream("testThingy321.ser");
ObjectInput in = new ObjectInputStream(fileIn);
hero = (Protag) in.readObject();
in.close();
fileIn.close();
} catch (Exception e) {e.printStackTrace();}
我对如何解释它为什么不起作用没有足够的理解,而且几乎我发现的样本告诉我说。然而,它似乎永远不会做任何事情。有人能告诉我要保存或加载它需要做些什么吗?
编辑:我检查了logcat,我得到了这个:
05-17 22:25:46.098:W / System.err(24774):java.io.FileNotFoundException:testThingy321.ser:open failed:EROFS(只读文件系统)
答案 0 :(得分:1)
您的Protag类应该实现Serializable
接口并定义readObject
和writeObject
方法,如此处所述Serialization - readObject writeObject overrides