数据存储
数据存储
学习目标
学习目标:- 了解五种数据存储的方式,掌握不同存储方式特点
- 掌握如何使用文件来存储数据
- 掌握SharedPreferences的使用,实现数据存储功能
- 学习使用SQLite数据库,实现数据的增删改查功能
数据存储方式
1.Android平台提供的五种数据存储方式,各自都有不同的特点,下面就针对这五种方式进行简单的介绍。
(1)文件存储
Android提供了openFileInput()和openFileOutput()方法来读取设备上的文件,其读取方式与Java中I/O程序是完全一样的。
(2)SharedPreferences
采用了XML格式将数据存储到设备中。通常下,我们使用SharedPreferences存储一些应用程序中各种配置信息,如用户名、密码等。
(3)SQlite数据库
Android自带的一个轻量级的数据库,它运算速度快,占用资源少,支持基本SQL语法,一般用于复杂数据的存储引擎。
(4)ContentProvider
主要用于应用程序之间的数据交换,它可以将自己的数据共享给其他应用程序使用。
(5)网络存储
需要与Android网络数据包打交道,存储到服务器上通过网络提供的存储空间来存储/获取数据信息。
存储方式中如何实现数据内部存储
使用Context提供的openFileInput()和openFileOutput()方法,这两个方法能够返回进行读写操作的FileOutputStream对象和FileInputStream对象
文件存储
存储方式与Java中的文件存储类似,都是通过I/O流的形式把数据直接存储到文件中。
两种存储方式
1.内部存储
内部存储时将数据以文件的形式存储到应用中
FileOutputStream fos = openFileOutput(String name,int mode);
FileInputStream fis = openFileOutput(String name);
openFileOutput()方法用于打开应用程序中对应程序中对应的输出流,将数据存储到指定的文件中;
openFileInput()方法用于打开引用的输入流,读取指定文件中的数据,它们的参数“name”表示文件名;
“mode”表示文件的操作模式,也就是读写文件的方式
mode的取值有四种:
- MODE_PRIVATE:该文件只能被当前程序读写。
- MODE_APPEND:该文件的内容可以追加。
- MODE_WORLD_READABLE:该文件中的内容可以被其他程序读。
- MODE_WORLD_WRITEABLE:该文件的内容可以被其他程序写。
2.外部存储
外部存储是将数据以文件的形式存储到一些外部设备上。如SD卡
Environment.getExternalStorageState()
SharedPreferences存储
调用 SharedPreferences(String name,int mode)方法获取实例对象的edit()方法获取可编辑的Editor对象,最后通过该对象的putXxx()方法存储数据
1.如何获取SharedPreferences实例对象?
首先调用SharedPreferences(String name,int mode)
2.请解释说明如何将数据存入SharedPreferences中?
调用SharedPreferences类的edit()方法获取可编辑的Editor对象,醉胡通过该对象的putXxx()方法存储数据
3.解释Cursor
Cursor: 是一个结果集
4.解释ACID
ACID: 指数据库事务正确执行的四个基本要素。
(1)原子性(Atomicity):
表示事务是一个不可分割的工作单位,事务中的操作要么全部成功要么全部失败回滚,回到原点。
(2)一致性(Consistency):
表示事务开始之前和结束之后,数据库的完整性没有被破坏。也就是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
(3)隔离性(Isolation):
表示并发的事务时相互隔离的,也就是一个事务内部的操作都必须封锁起来,不会被其他事务影响到。
(4)持久性(Durability):
表示事务一旦提交后,该事务对数据做的更改便持久保存在数据库中,并不会被回滚,即使出现了断电等事故,也不会影响数据库中的数据。
SQLite数据库存储
SQLiteOpenHelper类中重写onCreate()方法和onUpgrade()方法