sp(SharedPreferences)存储对象

   其实主要是利用对象输出流(ObjectOutputStream)将对象转换为二进制数据,然后将二进制数据转换为字符串,再利用SP存储字符串即可。

 

核心代码:

   /**
     * 保存对象
     * 针对复杂类型存储<对象>
     * 注意:要保存的对象必须序列化
     * @param key
     * @param object
     */
    public void setObject(String key, Object object) {
        SharedPreferences sp = this.context.getSharedPreferences(this.spName, Context.MODE_PRIVATE);

        //创建字节数组输出流
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        /*
        对象输出流
        ObjectOutputStream 是实现序列化的关键类,它可以将对象转换为二进制流
         */
        ObjectOutputStream out = null;
        try {
            //然后通过将字对象进行64转码,写入key值为key的sp中
            out = new ObjectOutputStream(baos);
            //将对象写进该流中
            out.writeObject(object);
            //将二进制数据转换为字符串
            String objectVal = new String(Base64.encode(baos.toByteArray(), Base64.DEFAULT));
            SharedPreferences.Editor editor = sp.edit();
            editor.put

你可能感兴趣的:(Android)