2013-11-02 62 views
0

这可能非常简单,但在阅读了一些指南后,我无法弄清楚我的代码有什么问题。以下是应该序列化并保存ArrayList中包含的对象列表。它的工作原理以外的所有实例变量包含在ArrayList中的对象中,都丢失了。如何序列化对象的ArrayList并将其保存到文件中(在android中)?

编辑:有人可以告诉我,如果这部分代码是正确的?

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

我简化了问题,基本上检查代码的这个特定部分是否正确。 – abc32112

+0

都一样,你必须避免重复的帖子 – Blackbelt

回答

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

+0

据我所知,他们都没有给我一个错误信息。我相当确信阅读是有效的,因为当程序当前对任何变量返回“null”时,如果它在类本身中被初始化,那么相同的变量会被正确地返回。 – abc32112

相关问题