Android 之 数据存储方式
程序员文章站
2022-05-16 13:33:15
...
[b]Android 之 数据存储与访问
概念:任何一个应用程序都要依赖数据存储,而且这种存储必须不丢失数据,并且有效、简便使用和更新这些数据。在Android操作系统中一共提供了四中数据存储方式,但是由于存储的这些数据都是私有的,所以如果需要共享其他应用程序的数据,就需要使用ContentProvider(数据共享);
1. Android 中数据存储的方式:4种
1) Shared Preferences :存储于手机自身内存,存储数据类型为:”键-值” 格式的数据
2) Files 存储:通过FileInputStream 和 FileOutStream 操作文件;
3) SQLite:标准的数据库存储,支持SQL 语句;
4) NetWork : 网络存储,通过网络存储和获取数据;
2. 数据存储之 SharedPreferences 存储:
1) 作用:使用键值一一对应关系保存配置信息;
2) 特点:键值的一一对应关系,保存的数据主要是简单的key-value 对
3) 说明:SharedPreferences ,一个轻量级存储类,特别适合用于保存软件配置参数;
4) 例如:保存上一次用户修改或自定义参数,音效,震动等…
5) 存储路径:/data/data/<package name>/shared_prefs 目录下;
6) 操作模式:(创建xml文件时赋予文件的权限)
a) 文件创建模式:Activity.MODE_APPEND :如果该文件已经存在,然后将数据写入,而不是抹掉现有文件的末尾;
b) MODE_PRIVATE: 默认模式,在那里创建的文件只能由应用程序调用,即为私有的;
c) Activity.MODE_WORLD_READABLE :允许所有其他应用程序读取和创建文件的权限;
d) Activity.MODE_WORLD_WRITEABLE :允许所有其他应用程序具有写入、访问和创建的文件权限;
7) 实例演示存放步骤:
a) SharedPreferences sp = getSharedPreferences(“文件名”,”模式”); //获取对象
b) Editor editor= sp.edit(); //通过SharedPreferences 对象获取Editor 对象
c) Editor.putXXX(key,value); //存入数据
d) editor.commit(); // 提交修改的数据
8) 实例演示读取步骤:
a) SharedPreferences sp = getSharedPreferences(“读取文件名”,”模式”);
b) sp.getXXX(key); // 获取数据
9) 缺点:只能存储boolean int float long string 五种简单的数据类型,只能是存储方式的一种补充;
3. 数据存储之 文件存储:
1) Activity 中使用 openFileOutput() 方法用于把数据输出到文件中;
2) 写入文件内容用法:
a) FileOutputsStream out = this.openFileOutput(“a.txt”,”操作模式”);
3) 操作模式:
a) Context.MODE_PRIVATE : 默认,代表该文件是私有数据;
b) Context.MODE_APPEND :想已经存在的文件追加内容;
c) Context.MODE_WORLD_WRITEABLE :是否有权限写入该文件
d) Context.MODE_WORLD_READABLE : 是否被其它应用读取;
e) 提示:可以读 和 写 的权限可以联合进行使用:中间用 “+” 链接;
4) 保存位置:/data/data/<package name>/files 目录下
5) 读取文件内容用法:
a) 相对路径用法:FileInputStream fis = this.openFileInput(“文件名”);
b) 绝对路径用法:File file = new File(“/data/data/sun.android/files/a.txt”); FileInputStream fis = new FileInputStream(file);
6) 提示:如果自定义类中需要使用到Activity中的对象,那么在该类中定义构造方法用于接收Activity传递多来的对象,同样可以进行使用的;
4. 数据存储之 SQLite 数据库:
1) 简介:SQLite 是一个开源的嵌入式关系数据库;
2) 优点:可以减少应用程序管理数据的开销,可移植性好,容易使用,体积小,高效可靠;
3) 特点:
a) 可以将SQLite数据库看成 无数据类型的数据库,因为可以自行转换;主键为Integer ,则,只能存储 64位整数;
b) 零配置:不用安装,不用配置,不用启动,不用关闭;
c) 可移植:商用系统 , 嵌入式操作系统,都可以使用
d) 紧凑:轻量级、自包含。一个头文件,一个lib库,就可以使用关系数据库了,不用启动任何进程;
e) 简单:SQLite有着简单易用的API接口;
f) 可靠:SQLite源码达到100%覆盖率;
4) 如何使用:
a) SQLiteDatabase 代表着一个数据库对象(底层为一个数据库文件);
b) SQLiteOpenHilper :用于创建、打开数据库以及各种数据库的操作; 说明:该类为一个抽象类,抽象方法:onCreate(); onUpgrade();
c) 说明总结:如果数据库不存在,只调用onCreate() 方法,该方法只会在数据库第一次创建时调用; 如果数据库文件存在,并高于之前版本,会调用onUpgrade方法来升级数据库,并更新版本号;
[/b]
概念:任何一个应用程序都要依赖数据存储,而且这种存储必须不丢失数据,并且有效、简便使用和更新这些数据。在Android操作系统中一共提供了四中数据存储方式,但是由于存储的这些数据都是私有的,所以如果需要共享其他应用程序的数据,就需要使用ContentProvider(数据共享);
1. Android 中数据存储的方式:4种
1) Shared Preferences :存储于手机自身内存,存储数据类型为:”键-值” 格式的数据
2) Files 存储:通过FileInputStream 和 FileOutStream 操作文件;
3) SQLite:标准的数据库存储,支持SQL 语句;
4) NetWork : 网络存储,通过网络存储和获取数据;
2. 数据存储之 SharedPreferences 存储:
1) 作用:使用键值一一对应关系保存配置信息;
2) 特点:键值的一一对应关系,保存的数据主要是简单的key-value 对
3) 说明:SharedPreferences ,一个轻量级存储类,特别适合用于保存软件配置参数;
4) 例如:保存上一次用户修改或自定义参数,音效,震动等…
5) 存储路径:/data/data/<package name>/shared_prefs 目录下;
6) 操作模式:(创建xml文件时赋予文件的权限)
a) 文件创建模式:Activity.MODE_APPEND :如果该文件已经存在,然后将数据写入,而不是抹掉现有文件的末尾;
b) MODE_PRIVATE: 默认模式,在那里创建的文件只能由应用程序调用,即为私有的;
c) Activity.MODE_WORLD_READABLE :允许所有其他应用程序读取和创建文件的权限;
d) Activity.MODE_WORLD_WRITEABLE :允许所有其他应用程序具有写入、访问和创建的文件权限;
7) 实例演示存放步骤:
a) SharedPreferences sp = getSharedPreferences(“文件名”,”模式”); //获取对象
b) Editor editor= sp.edit(); //通过SharedPreferences 对象获取Editor 对象
c) Editor.putXXX(key,value); //存入数据
d) editor.commit(); // 提交修改的数据
8) 实例演示读取步骤:
a) SharedPreferences sp = getSharedPreferences(“读取文件名”,”模式”);
b) sp.getXXX(key); // 获取数据
9) 缺点:只能存储boolean int float long string 五种简单的数据类型,只能是存储方式的一种补充;
3. 数据存储之 文件存储:
1) Activity 中使用 openFileOutput() 方法用于把数据输出到文件中;
2) 写入文件内容用法:
a) FileOutputsStream out = this.openFileOutput(“a.txt”,”操作模式”);
3) 操作模式:
a) Context.MODE_PRIVATE : 默认,代表该文件是私有数据;
b) Context.MODE_APPEND :想已经存在的文件追加内容;
c) Context.MODE_WORLD_WRITEABLE :是否有权限写入该文件
d) Context.MODE_WORLD_READABLE : 是否被其它应用读取;
e) 提示:可以读 和 写 的权限可以联合进行使用:中间用 “+” 链接;
4) 保存位置:/data/data/<package name>/files 目录下
5) 读取文件内容用法:
a) 相对路径用法:FileInputStream fis = this.openFileInput(“文件名”);
b) 绝对路径用法:File file = new File(“/data/data/sun.android/files/a.txt”); FileInputStream fis = new FileInputStream(file);
6) 提示:如果自定义类中需要使用到Activity中的对象,那么在该类中定义构造方法用于接收Activity传递多来的对象,同样可以进行使用的;
4. 数据存储之 SQLite 数据库:
1) 简介:SQLite 是一个开源的嵌入式关系数据库;
2) 优点:可以减少应用程序管理数据的开销,可移植性好,容易使用,体积小,高效可靠;
3) 特点:
a) 可以将SQLite数据库看成 无数据类型的数据库,因为可以自行转换;主键为Integer ,则,只能存储 64位整数;
b) 零配置:不用安装,不用配置,不用启动,不用关闭;
c) 可移植:商用系统 , 嵌入式操作系统,都可以使用
d) 紧凑:轻量级、自包含。一个头文件,一个lib库,就可以使用关系数据库了,不用启动任何进程;
e) 简单:SQLite有着简单易用的API接口;
f) 可靠:SQLite源码达到100%覆盖率;
4) 如何使用:
a) SQLiteDatabase 代表着一个数据库对象(底层为一个数据库文件);
b) SQLiteOpenHilper :用于创建、打开数据库以及各种数据库的操作; 说明:该类为一个抽象类,抽象方法:onCreate(); onUpgrade();
c) 说明总结:如果数据库不存在,只调用onCreate() 方法,该方法只会在数据库第一次创建时调用; 如果数据库文件存在,并高于之前版本,会调用onUpgrade方法来升级数据库,并更新版本号;
[/b]
推荐阅读
-
在android开发中进行数据存储与访问的多种方式介绍
-
详解Android数据存储—使用SQLite数据库
-
Android开发之串口编程原理和实现方式
-
关于Android Activity之间传递数据的6种方式
-
Android 数据存储方式有哪几种
-
Android解析json数据示例代码(三种方式)
-
Android之采用execSQL与rawQuery方法完成数据的添删改查操作详解
-
Android数据持久化之SQLite数据库用法分析
-
Android 数据存储之 FileInputStream 工具类及FileInputStream类的使用
-
python 之 数据库(视图、触发器、事务、存储过程)