0
点赞
收藏
分享

微信扫一扫

Android学习笔记——持久化存储

嚯霍嚯 2022-03-17 阅读 85

Android系统中主要提供三种方式用于简单地实现数据持久化功能——文件存储、SharedPreference存储、数据库存储。

文件存储——最基本的一种存储方式

作为最基本的存储方式,不对存储的内容进行任何的格式化处理,所有数据都是原封不动地保存到文件当中。
适用:简单的文本数据或二进制数据
默认文件存放目录:所有文件默认存储到/data/data/<package name>/files/

将数据存储到文件中

openFileOutput()方法:由Context类提供。将数据存储到指定文件。
两个参数:

  • 参数一:文件名,文件创建时候使用的名字,不包括路径名(所有文件默认存储到/data/data/<package name>/files/目录下);
  • 参数二:文件的操作模式,主要有两种可选:
    MODE_PRIVATE:默认的操作模式,覆盖原有内容;
    MODE_APPEND:如果文件已存在,向文件中追加内容;不存在就创建文件。
    (Android4.2后已将MODE_WORLD_READABLE、MODE_WORLD_WRITEABLE两种危险的模式废弃)

返回:返回一个FileOutputStream对象,得到这个对象后就可以使用java流的方式将数据写入到文件中。

从文件中读取数据

openFileInput()方法:同样Context类提供。只接收一个参数:要读取的文件名。系统会自动在默认目录下去加载这个文件。
返回:返回一个FileInputStream对象,得到对象后可以通过Java流的方式将数据读取出来。

实例

P202及之前几页

SharedPreferences存储

使用键值对的方式来存储数据。支持多种不同的数据类型存储。存储的数据是什么类型,读出仍然一样。显然更方便。
默认SharedPreferences文件存放目录:/data/data/<package name>/shared_prefs/目录下

将数据存储到SharedPreferences

首先获取SharedPreferences对象。三种方法:

  • Context类中的getSharedPreferences()方法
    接收两个参数:参数一指定SharedPreferences文件名称,如果指定文件不存在则会创建一个;参数二指定操作模式,目前只有MODE_PRIVATE一种模式可选,也是默认。
  • Activity类中的getPreferences()方法
    getSharedPreferences()方法相似,只不过只接收一个参数,为操作模式。会将当前活动的类名作为SharedPreferences的文件名。
  • PreferenceManager类中的getDefaultSharedPreferences()方法
    这是一个静态方法,接收一个Context参数,并自动使用当前应用程序包名作为前缀来命名SharedPreferences文件。得到SharedPreferences对象后,开始向文件中存储数据,可分为三步:
  1. 调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象;
  2. SharedPreferences.Editor对象中添加数据。比如添加一个布尔型数据就用putBoolean()方法,添加一个字符串则用putString()方法,以此类推.
  3. 调用apply()方法将添加的数据提交,从而完成数据存储操作。

从SharedPreferences中读取数据

对应Preferences.Editor中每一个put方法,都有对应get方法进行读取。
这些get方法接收两个参数:参数一是键,传入存储数据时使用的键就可以得到相应的值了;第二个参数是默认值,表示当传入的键找不到时会以什么样的默认值进行返回,要与方法索取的数据类型一致。

实例

实现记住密码功能

SQLite数据库存储

Android系统内置。SQLite作为一种轻量级的关系型数据库,运算速度快,占用资源少,适合移动设备使用。
适用:大量复杂的关系型数据。

创建数据库

升级数据库

添加数据

更新数据

删除数据

查询数据

使用SQL操作数据库

使用LitePal操作数据库

举报

相关推荐

0 条评论