1、文件存储
核心:Context类的openFileInput()和openFileOutput(),Java流进行读写操作。
不适合于保存一些较为复杂的文本数据。
a)写入:
OpenFileOutput有两个参数,其一为文件名,但不能包含路径,默认存储在/data/data/<package name>/files/目录下,且不能随便访问。
其二为文件的操作模式,MODE_PRIVATE为默认模式,表示指定相同文件名时,会从头写入,覆盖之前的内容;MODE_APPEND表示如果存在文件就在文件里追加内容,不存在就创建新文件。
比如
b)读出:
openFileInput只有一个参数,即文件名,系统会在默认路径下去寻找。
比如
2、SharedPreferences存储
核心:键值对的方式存储
a)写入:
1)获取SharedPreferences对象(1) →
2)调用对象(1)的edit()方法获取一个SharedPreferences.Editor对象(2) →
3)按数据类型向对象2中添加数据,比如字符串用put-String,布尔型用put-Boolean方法 →
4)调用commit方法提交数据
其中,获取Share的Preference岁对象有三种方法
1)Context类中的get-shared-preferences()
a) 第一个参数接受文件名,第二个参数接受操作模式
i. 文件默认存放在/data/data/<package name>/shared_prefs/目录下
ii. 模式MODE_PRIVATE默认,表示只有当前程序能对该文件读写;MODE_MULTI_PROCESS表示可以多进程对同一文件进行读写
2)Activity类中的get-Preferences()
与a类似,但只接受一个参数。文件名会自动激活为当前类名。
3)Preference-Manager类的get-Default-Shared-Preferences()
静态方法,接受一个Context参数,自动使用当前程序包名作为前缀命名文件。
比如
存储为XML文件。如:
b)读出
使用Shared-Preferences对象的一系列get方法,与数据类型一一对应。
对于这些方法,两个参数:
1)键
2)默认值 传入键找不到对应值时,以什么默认值返回。
比如
3、实现记住密码功能
添加功能于Broadcast-Best-Practice 项目中。
4、数据库存储
核心:SQ Lite数据库存储,一轻量级的关系型数据库,android系统内置
(附:关系型数据库建立在关系模型基础上。由关系数据结构、关系操作集合、关系完整性约束组成。SQL是其中的一种标准数据查询语言,执行对数据库中数据的检索和操作。)
1)创建数据库:
Android提供了一个SQ-Lite-Open-Helper帮助类,提供了创建和升级功能。通过创建继承类来使用。