在一些时候,我们会自定义一些类或者一些特殊的对象(比如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(); }