Android 中如何将一个对象(例如BmobFile)保存起来并且读取出来

在一些时候,我们会自定义一些类或者一些特殊的对象(比如BmobFile),并且有时需要保存这些类所实例化出的对象,这时,问题就来了,该如何将其存储呢?

我采用的方法是通过FileOutputStream将其保存到SD卡中,并且使用FileInputStream来将其读取出来

实例:

保存对象:

BmobFile pic = prize.getPic();
        if (pic != null) {
            File saveFile = new File(Environment.getExternalStorageDirectory(), name);
            // 将BmobFile对象序列化,并且保存到以name命名的文件夹中
            try {
                ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream
                        (saveFile));
                outputStream.writeObject(pic);
                outputStream.flush();
                outputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

读取对象:

try {
                File file = new File(Environment.getExternalStorageDirectory(),name);   // 图片资源地址
                ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(file));
                BmobFile pic = (BmobFile) inputStream.readObject();// 有可能没有找到相对应的图片资源
                inputStream.close();
                integralMall.setPic(pic);
            } catch (IOException e) {
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                integralMall.setPic(null);  // 直接设置为null然后在设置布局的时候进行判断
                e.printStackTrace();
            }

猜你喜欢

转载自1124117571.iteye.com/blog/2329817