SharedPreferences存取更复杂的数据类型
2016-07-17 12:37
387 查看
原文链接http://blog.n8n.cn/?p=366
我们知道SharedPreferences只能保存简单类型的数据,例如,String、int等。
如果想用SharedPreferences存取更复杂的数据类型(类、图像等),就需要对这些数据进行编码。
我们通常会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中。
之后将其解码:
需要导入一个包:commons-codec-1.4.jar
链接内容:http://commons.apache.org/codec/download_codec.cgi
本文为《Android/OPhone开发完全讲义》一书的内容连载。转载请注明出处
我们知道SharedPreferences只能保存简单类型的数据,例如,String、int等。
如果想用SharedPreferences存取更复杂的数据类型(类、图像等),就需要对这些数据进行编码。
我们通常会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中。
public void saveOAuth(OAuthV1 oAuth_1) { SharedPreferences preferences = getSharedPreferences("base64", MODE_PRIVATE); // 创建字节输出流 ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { // 创建对象输出流,并封装字节流 ObjectOutputStream oos = new ObjectOutputStream(baos); // 将对象写入字节流 oos.writeObject(oAuth_1); // 将字节流编码成base64的字符窜 String oAuth_Base64 = new String(Base64.encodeBase64(baos .toByteArray())); Editor editor = preferences.edit(); editor.putString("oAuth_1", oAuth_Base64); editor.commit(); } catch (IOException e) { // TODO Auto-generated } Log.i("ok", "存储成功"); }
之后将其解码:
public OAuthV1 readOAuth() { OAuthV1 oAuth_1 = null; SharedPreferences preferences = getSharedPreferences("base64", MODE_PRIVATE); String productBase64 = preferences.getString("oAuth_1", ""); //读取字节 byte[] base64 = Base64.decodeBase64(productBase64.getBytes()); //封装到字节流 ByteArrayInputStream bais = new ByteArrayInputStream(base64); try { //再次封装 ObjectInputStream bis = new ObjectInputStream(bais); try { //读取对象 oAuth_1 = (OAuthV1) bis.readObject(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (StreamCorruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return oAuth_1; }
需要导入一个包:commons-codec-1.4.jar
链接内容:http://commons.apache.org/codec/download_codec.cgi
本文为《Android/OPhone开发完全讲义》一书的内容连载。转载请注明出处
相关文章推荐
- Android学习笔记(SharedPreferences的使用)
- 安卓客户端的多线程断点下载(SharedPreferences版)
- 自定义AlertDialog 以及简单使用SharedPrefermences
- Android — 使用 sharedPreferences 本地保存 key-value 数据
- android SharedPreferences加密(高级) (AES+base64+PBE)
- SharedPreferences
- Android存储的实现
- 使用SharedPreferences保存和读取数据
- SharedPreference 工具类
- SharePreference存储数据
- 数据存储之SharedPreferences
- 第五章--SharedPreferences的简单用法
- Android复习之数据存储-SharedPreferences
- android实现数据的MD5加密并用SharedPreferences存储
- Android 存储首选项SharedPreferences
- Android开发 SharedPreferences读取不到最新数据..
- 学Android--SharedPreferences
- SpTool -> Android系统SharedPreferences进行的封装
- 实用工具类
- SharedPreferences 简单应用