如何序列化对象的ArrayList并将其保存到文件(在android中)?

时间:2013-11-02 12:53:35

标签: java android serialization arraylist save

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

1 个答案:

答案 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();阅读,但您知道。