这可能非常简单,但在阅读了一些指南之后,我无法弄清楚我的代码有什么问题。以下内容应该序列化并保存ArrayList中包含的对象列表。它的工作原理是,除了 ArrayList中对象中包含的所有实例变量都会丢失。
编辑:有人可以告诉我这部分代码是否正确吗?
try {
FileOutputStream fos = this.openFileOutput ( FILENAME, Context.MODE_PRIVATE );
ObjectOutputStream oos = new ObjectOutputStream ( fos );
oos.writeObject ( arrayList );
oos.close ();
} catch ( Exception ex ) {
ex.printStackTrace ();
}
答案 0 :(得分:3)
首先,您应该检查Logcat输出是否写入或读取失败。
您正在使用oos.writeObject(arrayList); 确保arrayList的项目实现Serializable接口,否则写入将失败。 例如:
public class MyClass implements Serializable { }
...
ArrayList<MyClass> arrayList = new ArrayList<MyClass>();
/*add items*/
oos.writeObject(arrayList);//it will not throw Exception, because MyClass implements Serializable
并使用(ArrayList<MyClass>) ois.readObject();
阅读,但您知道。