0

这可能真的很简单,但是在阅读了许多指南之后,我无法弄清楚我的代码有什么问题。以下内容应该序列化并保存 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 ();
    }
4

1 回答 1

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();但你知道的。

于 2013-11-02T13:32:52.013 回答