使用Serializable(Android)将自定义类保存到文件

时间:2013-09-27 12:42:42

标签: java android serialization save instances

你好我有一个非常奇怪的问题...... 我使用接口“Serializable”将我的类的根对象保存到文件。 此外,我正在存储其他类的实例,如“Hero”等。 保存和加载似乎没有问题....直到我使用任务管理器或Ram Booster清除RAM并尝试加载我的数据....初始的Root对象被加载,但是每个没有直接初始化的对象在我的根类(例如“Hero myHero;”)再次为null ...所以我收到一个空指针异常... 我将我的根对象保存在onPause()和onStop()中 并且代表我的保存和加载类

public static void saveToStorage(Context context, Root root)
{
    try
    {
        ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream(new File(context.getFilesDir().getAbsoluteFile(), "save.bin")));
        oos.writeObject(root);
        oos.flush();
        oos.close();    
    }
    catch (Exception e)
    {
        e.printStackTrace();
        Log.e("Error", e.getMessage());
    }
}

public static Object loadClassFile(File f)
{
    try
    {
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(f));
        Object o = ois.readObject();
        return o;
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    return null;
}

0 个答案:

没有答案