本地存储

介绍

android的本地存储数据的方式主要有三种

  1. 保存数据在内部或者外部(SD卡)存储上
  2. Shared Preferences :使用函数以键值对方式存储私有数据类型
  3. SQLite Databases

源码地址

Storage

实现

文件存储

文件存储分为写入和读取两个步骤,是最基本的存储方式,主要适用于简单文本数据和二进制文件。

文件存储使用java流方式,分别使用openFileOutput()方法结合BufferedWriter()方法进行存储;FileInputStream()方法、BufferedReader和StringBuilder()方法进行读取。

目前为了安全原因,默认的存储位置都是在/data/data/<package name>/files/的目录下,文件名称可以自己指定,写入的模式有两种,分别是覆盖和追加,使用MODE_PRIVATE和MODE_APPEND参数指定,其他模式都因为安全原因被废弃。

1.效果预览和布局文件,主要是使用EditText和Button负责输入存储,另一个TextView和Button负责读取显示。

2.存储是创建save方式,并使用按钮调用

3.读取和存储类似,使用load方法,但是这边再加上获取实时事件和读取的数据输出到TextView中

SharedPreferences

此种方式是使用key-value,即键值对,的方式进行存储。详细的可以参考这个页面。

获取SharedPreferences对象的方式主要有三种:

  1. Context类中getSharedPreferences()方法:这种方法可以指定SharedPreferences文件名称和操作模式,但是操作模式目前只剩下MODE_PRIVATE一种,其它的都因为安全原因废弃。
  2. Activity类中的getPreferences()方法:只接受操作模式参数,文件名默认为当前活动类名。
  3. PreferenceManager类中的getDefaultSharedPreferences()方法:静态方法,接受Context参数,文件名默认为包名。

注:文件存放位置为/data/data/<package name>/shared_prefs/目录下

1.此处使用String和Interge数据类型的存储作为例子,分别实现

2.创建四个按钮,分别用于存储和读取String和Integer,获取SharedPreferences对象后使用Editor编辑和apply方法提交编辑;然后再读取后显示在TextView中