我想将一个可序列化的对象写入内部存储器中的文件。然后,我想稍后从该文件中加载该对象。我怎么能在 Android 中做到这一点?
问问题
984 次
1 回答
13
首先你的对象必须实现Serializable
。不要忘记serialVersionUID
在可序列化的类上添加一个。
然后,如果您不想保存对象的特定字段,请将其标记为transient
. 确保所有字段都是可序列化的。
接下来在内部存储器中创建一个文件并创建一个 ObjectOutputStream 来保存您的对象。如果要保存在特定文件夹中,可以创建如下路径:
File path=new File(getFilesDir(),"myobjects");
path.mkdir();
然后您可以使用该路径来保存您的对象:
File filePath =new File(path, "filename");
FileOutputStream fos = new FileOutputStream(filePath);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(object);
oos.close();
读法类似:
FileInputStream fis = new FileInputStream(file);
ObjectInputStream in = new ObjectInputStream(fis);
MyObjectClass myObject = (MyObjectClass ) in.readObject();
in.close();
于 2012-05-20T00:07:50.830 回答