使用SharedPreference 进行对象存储
来源:互联网 发布:淘宝外星人代购 编辑:程序博客网 时间:2024/05/22 00:40
使用场景
在实际开发中,经常会需要将对象进行存储,通常的想法是使用数据库进存储,但是,在整个项目中只需要对少量数据进行存储时,这时使用数据库就显得有些重。比如登录成功后的用户信息,在整个项目中只有这一条数据需要存储,如果因为这一条数据的存储就使用数据库进行存储,是否显得有些大材小用了,其实,使用SharedPreference 对用户登录信息进行存储,也不为是一种不错的选择,如果此时考虑写入和读取效率问题,可以对数在内存中做一下数据持久化处理。
注意
存入的对象一定要进行序列化(Serializable),否则无法进行存储
比如存入User对象,就要对User 进行序列化操作。
示例代码如下:
public class User implements Serializable{ private String name; private String addr; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } @Override public String toString() { return "UserInfo{" + "name='" + name + '\'' + ", addr='" + addr + '\'' + '}'; }}
实现代码
1.对象存储
/** * 向SharedPreference 中保存信息<br> * * @param key * 类型String Key * @param obj * 类型object */ public void saveToShared(String key, Object obj) { ByteArrayOutputStream out = new ByteArrayOutputStream(); try { ObjectOutputStream oout = new ObjectOutputStream(out); oout.writeObject(obj); String value = new String(Base64.encode(out.toByteArray())); Editor editor = sharedPreferences.edit(); editor.putString(key,value); editor.commit(); } catch (IOException e) { e.printStackTrace(); } }
- 对象读取
/** * 从SharedPreference 中读取保存的信息<br> * * @param key * 读取保存信息的Key * @return 返回读取的信息<br> * 类型为 T <br> * Value 为读取内容,类型为String,如果Key未找到对应的数据,则返回null */ public Object queryForSharedToObject(String key) { String value = sharedPreferences.getString(key, null); if(value != null){ byte[] valueBytes = Base64.decode(value); ByteArrayInputStream bin = new ByteArrayInputStream(valueBytes); try { ObjectInputStream oin = new ObjectInputStream(bin); return oin.readObject(); } catch (Exception e) { return null; } } return null; }
封装SharedPreference 工具类下载地址:SharedPreference 工具类
0 0
- 使用SharedPreference 进行对象存储
- 使用sharedpreference存储复杂对象
- SharedPreference存储的使用
- 使用SharedPreference存储数据
- 使用SharedPreference存储信息
- sharedpreference 如何存储集合对象
- 使用SharedPreference进行文件操作
- android中利用sharedpreference进行数据存储
- SharedPreference (永久进行存储,整个app进行调用)
- SharedPreference存储
- 数据存储与访问(2)--------SharedPreference使用
- jsp使用application对象进行存储
- 使用MD5对SharedPreference的重要数据进行加密
- 【Android SharedPreference】 使用SharedPreferences存储复杂类型的数据
- Android 存储学习之使用SharedPreference保存文件
- sharedPreference存储用户设置
- 数据存储之 SharedPreference
- Android 数据存储---SharedPreference
- pthread_rwlock_t基本用法
- Maven项目中War包的打包及依赖方式
- android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original
- Centos6 存储多路径 设置 要点
- 简单的Android中在Button控件上显示倒计时。
- 使用SharedPreference 进行对象存储
- 更改UITableView左边编辑图片
- quagga 命令定义的代码分析(DEFUN)
- POJ 1273 Drainage Ditches (最大流问题——Edmonds-Karp算法)
- 关于在开发板和电脑用网线直接连接的情况下如何ping通,nfs挂载
- 第三方微信登陆编译问题
- 常用Git命令
- 文件拷贝
- 安卓ListView使用技巧