gpt4 book ai didi

java - (objectinputstream) ObjectInput.readObject() 给我一个空对象

转载 作者:行者123 更新时间:2023-11-30 11:44:15 25 4
gpt4 key购买 nike

我有这门课:

public class SaveState implements Serializable {
private static final long serialVersionUID = 1L;
public List<String> downloadedMagazinesIds = new ArrayList<String>();//id's de revistas descargadas
public List<String> downloadedMagazinesSummaries = new ArrayList<String>();//página sumario de cada magazine
public List<FullMagazine> downloadedMagazines = new ArrayList<FullMagazine>();//todos los magazines bajados
public Magazines ms=null; //Esta clase contiene el array de previews de revistas generado con el parser de XML
}

然后我使用这些方法将类(SaveState 对象)存储在 sdcard 中,并将对象从文件中再次读取到对象中:

public static void saveData(){
ObjectOutput out;
try {
//primero comprobamos si existe el directorio, y si no, lo creamos.
File folder = new File(Environment.getExternalStorageDirectory() + "/C/");
if(!folder.exists())
folder.mkdirs();

File outFile = new File(Environment.getExternalStorageDirectory(), "/C/appSaveState.data");
out = new ObjectOutputStream(new FileOutputStream(outFile));
out.writeObject(saveState);
out.close();
} catch (Exception e) {e.printStackTrace();}
}


public static void loadData(){
ObjectInput in;
try {
File inFile = new File(Environment.getExternalStorageDirectory(), "/C/appSaveState.data");
in = new ObjectInputStream(new FileInputStream(inFile));
saveState=(SaveState) in.readObject();
in.close();
} catch (Exception e) {e.printStackTrace();}
}

我存储对象,每次我的应用程序关闭时,我每次打开我的应用程序时都从 sdcard 读取对象并且它工作正常。当我创建更新版本的应用程序 (1.01) 时,问题就来了。当我启动应用程序并尝试从 sdcard 读取文件时,文件被读取但对象类的所有变量都是空的,而且它们真的不为空。

为什么我的代码不能正常工作?我应该怎么做才能修复它?

最佳答案

我已尝试编辑您的问题以使其更具可读性和易懂性。希望它能帮助您得到一些好的答案。

我建议如下

  1. 尝试使用相同的 1.0 版本阅读它。这将消除任何与“版本”/ list 相关的问题。
  2. 您的 FullMagazine 可能是根本原因,删除该对象并重试。

让我知道你找到了什么。这是一个有趣的问题。

关于java - (objectinputstream) ObjectInput.readObject() 给我一个空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10877869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com