数据持久化存储

2017-04-20  本文已影响0人  乐潇

1. 文件存储

文件存储不对存储的内容进行任何的格式化处理,所有数据都是原封不动保存到文件当中,因而适合用于存储一些简单的文本数据或二进制数据。

2. SharedPreferences 存储

SharedPreferences 是使用键值对的方式来存储数据的。当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把相应的值取出来。SharedPreferences 支持多种不同的数据类型存储,如果存储的数据类型是整形,那么读取出来的数据也是整型;如果存储的数据是一个字符串,取出来的数据仍然是字符串。

① 将数据存储到 SharedPreferences 中

首先需要获取到 SharedPreferences 对象

接收两个参数,第一个用于指定 SharedPreferences 文件的名称,若指定的文件不存在则会创建一个,文件存放于/data/data/<package name>/shared_prefs/目录下。
第二个参数用于指定操作模式,只有 MODE_PRIVATE 可选,表示只有当前程序才可对该 SharedPreferences 文件进行读写。

类似 Context 中的 getSharedPreferences() 方法,但只接收一个操作模式参数,因为使用这个方法时会自动将当前活动的类名作为 SharedPreferences 的文件名。

这是一个静态方法,它接收一个 Context 参数,并自动使用当前应用程序的包名作为前缀来命名 SharedPreferences 文件。

向 SharedPreferences 文件中存储数据

  1. 调用 SharedPreferences 对象的 edit() 方法来获取一个 SharedPreferences.Editor 对象。

  2. 向 SharedPreferences.Editor 对象中添加数据。

  3. 调用 apply() 方法将添加的数据提交。

关键代码片段:

    {
    SharedPreferences.Editor editor = getSharedPreferences(
        "data", MODE_PRIVATE).edit();
    editor.putString("name", "Tom");
    editor.putInt("age", 28);
    editor.putBoolean("married", false);
    editor.apply();
    }

② 从 SharedPreferences 中读取数据

关键代码片段

{
// 读取数据
SharedPreferences pref = getSharedPreferences(
    "data", MODE_PRIVATE);
String name = pref.getString("name", "");
int age = pref.getInt("age", 0);
boolean married = pref.getBoolean("married", false);
// 打印日志
Log.d("MainActivity", "name is " + name);
Log.d("MainActivity", "age is " + age);
Log.d("MainActiviry", "married is " + married);
}

3. SQLite 数据库存储

4. LitePal

上一篇 下一篇

猜你喜欢

热点阅读