5

我想将一个可序列化的对象写入内部存储器中的文件。然后,我想稍后从该文件中加载该对象。我怎么能在 Android 中做到这一点?

4

1 回答 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 回答