【发布时间】:2013-02-13 11:39:28
【问题描述】:
您好,我在尝试将新对象附加到现有文件时遇到问题.. 再次启动 android 应用程序后,我想获取现有文件并添加一个新对象,然后从现有文件中读取对象...实际上,当我尝试读取对象时,代码将只读取第一个对象..你可以在下面找到代码..你能帮忙吗?谢谢
使用以下方法编写对象:
public void saveObject(Person p, File f){
try
{
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(f, true));
oos.writeObject(p);
oos.reset();
oos.flush();
oos.close();
}
catch(Exception ex)
{
Log.v("Serialization Save Error : ",ex.getMessage());
ex.printStackTrace();
}
}
使用以下方法读取对象:
public Object loadSerializedObject(File f)
{
try {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(f));
try{
Object loadedObj = null;
while ((loadedObj = ois.readObject()) != null) {
Log.w(this.getClass().getName(), "ReadingObjects") ;
}
return objects;
}finally{
ois.close();
}
} catch (StreamCorruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
【问题讨论】:
-
当你返回对象:objects在哪里声明?您在哪里为 objects 赋予任何价值?
-
可能是您将不同的对象写入不同的文件,如果是这样,您实际上是在获取您写入文件的所有对象吗?
标签: java object serialization objectoutputstream objectinputstream