前言
Android
中常用的数据存储方式有5种:SharePreferences
、SQLite数据库、文件存储、ContentProvider
& 网络存储
目录
1. 简介
- 定义:一种数据存储方式
- 本质:以键值对的形式存储在xml中
- 特点:轻量级
- 应用场景:轻量级存储(如 应用中的配置、参数属性)
- 默认存储路径:
/data/data/<PackageName>/shared_prefs
2. 对比
除了SharedPreferences
,Android
常见的数据存储方式主要包括:
- SQLite数据库
- 文件存储
- ContentProvider
- 网络存储
具体介绍如下:
3. 具体使用
对于SharePreferences
的使用,主要包括保存数据 & 读取数据。
3.1 保存数据
- 本质:以键值对的形式存储在xml文件中
- 文件存放在/data/data//shared_prefs目录下
- 使用步骤如下:
// 步骤1
SharedPreferences sharedPreferences =getSharedPreferences("mltest", Context.MODE_PRIVATE);
// 参数1:指定该文件的名称,名称不用带后缀,后缀会由Android自动加上
// 参数2:指定文件的操作模式,共有4种操作模式,分别是:
// Context.MODE_PRIVATE = 0:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
// Context.MODE_APPEND = 32768:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
// Context.MODE_WORLD_READABLE = 1:表示当前文件可以被其他应用读取
// Context.MODE_WORLD_WRITEABLE = 2:表示当前文件可以被其他应用写入
// 步骤2:通过Editor获取编辑器对象
Editor editor = sharedPreferences.edit();
// 步骤3:以键值对的方式写入数据
editor.putString("name", "四种模式");
editor.putInt("age", 4);
// 步骤4:提交修改
editor.commit();
3.2 读取数据
// 步骤1
SharedPreferences sharedPreferences = getSharedPreferences("ljq", Context.MODE_PRIVATE);
// 参数1:指定该文件的名称,名称不用带后缀,后缀会由Android自动加上
// 参数2:指定文件的操作模式,共有4种操作模式,分别是:
// Context.MODE_PRIVATE = 0:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
// Context.MODE_APPEND = 32768:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
// Context.MODE_WORLD_READABLE = 1:表示当前文件可以被其他应用读取
// Context.MODE_WORLD_WRITEABLE = 2:表示当前文件可以被其他应用写入
// 步骤2
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 1);
// getxxx():xxx为获取数据的数据类型
// 参数1:要获取的key
// 参数2:缺省值,即preference中不存在该key时返回默认值