数据存储
一、概述
目前我们已经学习了四种数据存储方式:
① 使用SharedPreferences存储数据;
② 文件存储数据;
③ SQLite数据库存储数据;
④ 使用ContentProvider存储数据 ;
标题 二、数据存储技术分类:
2.1本地数据存储技术
SharedPreferences(XML格式数据);
File(二进制数据为主);
SQLite(关系型数据);
2.2远程数据存取技术
基于Socket使用TCP/IP直接访问网络服务器;
基于HTTP相关协议访问WEB服务;
三、使用Sharedpreference存储数据
3.1 特点:
数据以"key-value"方式存储与处理;
数据存储于XML文件中;
Android内置相应数据存取组件,使用简单方便。
3.2 适用范围:
保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。
3.3实现SharedPreferences存储的步骤如下:
1、根据Context获取SharedPreferences对象;
2、利用edit()方法获取Editor对象;
3、通过Editor对象存储key-value键值对数据;
4、通过commit()方法提交数据。
3.4 获取SharedPreferences对象
可通过多种方式获得SharedPreferences对象。
Context.getSharedPreferences(String name, int mode)
name为文件名称,mode为操作模式,默认的模式为0或MODE-PRIVATE,还可以使用MODE-WORLD_READABLE和MODE_WORLD-WRITEABLE,
Activity.getPreferences(int mode) :只能在当前activity使用,一般不用使用当前不带包名的类名作为文件的名称。 mode为操作模式,默认的模式为0或MODE_PRIVATE,还可以使用MODE-WORLD_READABLE和MODE WORLD-WRITEABLE.
MODE-WORLD_READABLE和MODE_WORLD_WRITEABLE两种模式已经在4.2版本废除。
四、文件存储数据
4.1 核心原理: Context提供了两个方法来打开数据文件里的文件IO流 FileInputStream openFileInput(String name); FileOutputStream(String name , int mode),这两个方法第一个参数 用于指定文件名,第二个参数指定打开文件的模式。
4.2基本特点:可以保存任意类型、任意大小的数据,但是需要自行编写数据解析代码。
4.3.使用场景
比较适合保存少量的数据,更新不频繁,不需要进行复杂的查询,并且对安全性没有太大要求 的场合。
五、SQLite存储数据
5.1SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。
5.2 特点:
面向资源有限的设备,没有服务器进程,所有数据存放在同一文件中跨平台,可自由复制。
5.3 SQL ite的数据类型
(1)NULL
(2)INTEGER:整数
(3)REAL:浮点数
(4)TEXT:文本与字符串
(5)BLOB:二进制类型的数据
5.4 Android App数据库编程方式
(1)直接访问:使用SQLiteDatabase类
(2)初步封装:使用SQLiteOpenHelper类
(3)自定义:我们自己封装数据存取代码介
5.5 SQLiteDatabase类
SQLiteDatabase类为我们提供了很多种方法,对于添加、更新和删除来说,我们都可以使用。
六、使用ContentProvider存储数据
作用:统-管理不同的ContentProvider间的操作,一个Content Provider类实现了一组标准的方法接口,从而能够让其他的应用保存或读取此Content Provider的各种数据类型。
6.1 开发流程
开发流程
(1)定义继承ContentProvider的自定义类
(2)在AndroidManifest. xml用标签注册
6.2 URI
(1)统一资源标识符: uniform resource identifier
(2)ContentProvider以表的形式组织数据,使用的查询字符串有别于标准的SQL查询,增删改查等操作使用特殊的URI进行
(3)URI由3部分组成,content ?/代表数据的路径和一个可选的表示数据的ID
content://media/internal/ images:返回设备上存储的所有图片
content://contacts/people/:返回设备上所有联系人信息
content ?/contacts/ people/45:返回ID为45的单个联系人信息