设为首页 加入收藏

TOP

Android 数据存储和IO(一)
2014-11-24 12:35:29 来源: 作者: 【 】 浏览:0
Tags:Android 数据 存储

接下来简单介绍一下SharedPreferences和SQLite


数据存储:
一、SharedPreferences
Preference简介:
Preference:轻量级的数据存储方法,应用场合主要是数据比较少的配置信息。 它以“键-值”(是一个Map)对的方式将数据保存在一个XML配置文件中。
使用Preference 方式来存储数据,用到了SharePreferences接口和SharedPreferences的一个内部接口SharedPreferences.Editor,这两个接口在android.content包中。
调用Context.getSharedPreferences(String name,int mode)方法得到SharedPreferences接口。该方法的第一个参数是文件名称,第二个参数是操作模式。操作模式一共有三种:MODE_PRIVATE(私有)、MODE_WORLD_READAVLE(可读)和MODE_WORLD_WRITEABLE(可写)。SharedPreferences提供了获得数据的方法,如getString(String key,String defValue)、getInt(String key,int defValue)等。


调用SharedPreferences的edit()方法返回SharedPreferences.Editor内部接口,该接口中提供了保存数据的方法,如putString(String key,String value)、putInt(String key,int value)等,调用该接口的commit()方法可以将数据进行保存。


1. SharedPreferences
SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此塔保存的数据主要是简单类型的Key-Value对。
SharedPreferences接口主要负责读取应用程序的Preferences数据,它提供了如下方法来访问SharedPreferences中键值对。


a. boolean contains(String key):判断SharedPreferences是否包含特定的数据。
b. abstract Map getAll():获取SharedPreferences数据里全部的键值对
c. boolean getXxx(String key,xxx defValue):获取SharedPreferences数据里指定的key对应的value.如果该key不存在,返回默认值defValue。


SharedPreferences接口本身并没有提供写入数据的能力,而是通过SharedPreferences的内部接口,SharedPreferences调用edit()方法即可获取它所对应的Editor对象。
Editor提供了如下方法向SharedPreferences写入数据:
a. SharedPreferences.Editor clear():清空SharedPreferences里面的数据。
b. SharedPreferences.Editor putXxx(String key,xxx value): 向SharedPreferences存入指定的Key对应的数据。
c. SharedPreferences.Editor remove(String key):删除SharedPreferences里指定key对应的数据项。
d. boolean commit():当Editor编辑完成后,调用该方法提交修改。

SharedPreferences本身是一个接口,程序无法直接创建SharedPerences实例,只能通过Context提供的getSharedPreences(String name,int mode)方法来获取SharedPreferences实例,该方法的第二个参数有如下几个值:
a. Context.MODE_PREIVATE:指定该SharedPreferences数据只能被本应用程序读写。
b. Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写。
c. Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读、写。

2. 读写其他程序的SharedPreferences
前提是创建该SharedPreferences的应用程序指定相应的访问权限,例如:指定MODE_WORLD_READABLE:表明该SharedPreferences可被其他的应用程序读取。指定了MODE_WORLD_WRITABLE:表明该SharedPreferences可被其他程序写入。
一个SharedPreferences读取另一个权限为MODE_WORLD_READABLE模式的SharedPreferences时的步骤:
a. 需要创建其他程序对应的Context,例如:useCount = createPackageContext("com.infy.io",Context.CONTEXT_IGNORE_SECURITY);//其中com.infy.io为其他程序的包名(Android系统的包名来 作为该程序的标识的)
b. 调用其他应用程序的Context的getSharedPreferences(String name,int mode)即可获取相应的SharedPreferences对象。
c. 如果需要向其他应用的SharedPreferences数据写入数据,调用SharedPreferences的edit方法获取相应的Editor即可。
如果开发者不通过先获取其他应用程序的Context,再获取SharedPreferences的方式也可读取SharedPreferences数据,也可以完全可以使用IO流的方式读取SharedPreferences对应的XML文件,再通过XML解析来获取数据也是可行的,只是这种方式没有SharedPreferences来读写简单。


3. File存储
Android支持以IO流的方式来访问手机存储器上的文件。
Context提供了两个方法来打开本应用的数据文件夹里的文件IO流。



a. FileInputStream openFileInput(String name):打开应用程序的数据文件夹下的name文件对应的输入流。
b. FileOutputStream openFileOutput(String name,int mode):打开应用程序的数据文件夹下的name文件对应的输出流。



其中第二个方法的二个参数指定打开文件的模式,有如下值:
MODE_PRIVATE:该文件只能被当前程序读写。
MODE_APPEND:以追加的方式打开该问价,应用程序可以向该文件中追加内容。
MODE_WORLD_READABLE:该文件的内容可以被其他程序读取。
MODE_WORLD_WRITEABLE:该文件的内容可以由其他程序读写。



Context还提供了如下几个方法来访问应用程序的数据文件夹:
a. getDir(String name,int

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android设置中的Preferencescreen.. 下一篇Android SurfaceView实现静态于动..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·MySQL 安装及连接-腾 (2025-12-25 06:20:28)
·MySQL的下载、安装、 (2025-12-25 06:20:26)
·MySQL 中文网:探索 (2025-12-25 06:20:23)
·Shell脚本:Linux Sh (2025-12-25 05:50:11)
·VMware虚拟机安装Lin (2025-12-25 05:50:08)