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
还没有评论,来说两句吧...