数据存储——持久化技术
持久化技术
数据持久化就是指将在内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失。
保存在内存中的数据是处于瞬时状态,而保存在存储设备中的数据是处于持久状态,持久化技术提供一种机制可以使数据在瞬时状态和持久状态中进行转换。
Android中的数据持久化技术
Android系统中主要提供了三种方式用于简单地实现数据持久化功能,即文件存储、SharedPreferences存储以及数据库存储。
此外,还可以将数据保存在手机的SD卡中,但这种方式相对复杂且不那么安全。
文件存储
文件存储的特点是:不对存储的内容进行任何格式化处理,所有数据原封不动地保存到文件当中,因而较适合用于存储一些简单的文本数据或二进制数据。
将数据存储到文件中
1 | public void save() { |
从文件中读取数据
1 | public String load() { |
SharedPreferences
SharedPreferences采用键值对的方式存储数据,当保存一条数据时,需要给这个数据提供一个对应的键,在读取数据的时候,可以通过这个键把对应的值取出来。
SharedPreferences支持多种不同数据的类型存储,如果存储的数据是整型,读取出来的数据也是整型。
将数据存储到SharedPreferences中
- Context类中的getSharedPreferences()方法
- Activity类中的getPreferences()方法
- PreferenceManager类中的getDefaultSharedPreferences()方法
1 | SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit(); |
SQLite数据库存储
Android系统内置了SQLite数据库,数据库可以用于存储大量复杂的关系数据,例如短信等。
创建数据库
Android系统的SQLiteOpenHelper帮助类,可以对数据库进行创建和升级。
1 | public class MyDatabaseHhelper extends SQLiteOpenHelper { |
MainActivity.java
1 | private MyDatabaseHhelper myDatabaseHhelper; |
添加数据
1 | Button addData = (Button) findViewById(R.id.add_data); |
查询数据
1 | Button query = (Button)findViewById(R.id.query_data); |
更新数据
1 | Button update = (Button)findViewById(R.id.update_data); |