第一行代码 读笔⑥ (存储)
来源:互联网 发布:淘宝达人直播简介范文 编辑:程序博客网 时间:2024/06/07 23:16
数据存储方案,详解持久化技术
持久化技术 文件存储 SharedPreferences存储 SQLite数据库存储
持久化技术: 将内存中的瞬时数据保存到存储设备中,其提供了一种机制让数据再瞬时状态与持久状态之间相互转换。
Android主要提供了三种方式:
- 文件存储:最基本的数据存储方式,不对存储数据进行任何格式化处理,适于存储简单文本数据或二进制数据。
- SharedPreference存储:Android平台上一个轻量级的存储类,保存一些常用的配置比如窗口状态,提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。 。
- 数据库存储:Android上的SQLite是一款轻量级的关系型数据库,支持标准SQL语法,遵循数据库的ACID事物,功能强大方便。
文件存储:
通过Java中的IO操作来进行实现,Android在Context类中封装好J和读取了输入流和输出流的获取方法。
PS:创建的存储文件默认保存在/data/data//files文件夹下。
绝对路径:/data/data//files/filename。
Context:Context.getFilesDir()可以获取到”/data/data//files”
操作:
- 保存:通过Context.openFileOutput获取输出流,参数分别为文件名和存储模式。
- 读取:通过Context.openFileInput获取输入流,参数为文件名。
- 删除:Context.deleteFile删除指定的文件,参数为将要删除的文件的名称。
- 获取:通过Context.fileList获取files目录下的所有文件名数组。
存储模式:
- Context.MODE_PRIVATE :为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下写入的内容会覆盖原文件的内容。
- Context.MODE_APPEND: 检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
PS:可以用”+”来选择多种模式。
其他还有MODE_WORLD_READABLE 与MODE_WORLD_WRITEABLE分别代表可被其他应用读取与写入。由于不安全,在4.2被废弃。
SharedPreference存储:它分为多种权限,可以全局共享访问,本质是基于XML文件存储key-value键值对数据。haredPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。
需要先获取SharePreference对象,有3种方式:
Context类中的getSharedPreferences(name,mode) :
方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上;
方法的第二个参数指定文件的操作模式,共有四种操作模式。
四种操作模式分别为:- MODE_APPEND: 追加方式存储
- MODE_PRIVATE: 私有方式存储,其他应用无法访问
- MODE_WORLD_READABLE: 表示当前文件可以被其他应用读取
- MODE_WORLD_WRITEABLE: 表示当前文件可以被其他应用写入
Activity类中的getPreference(mode):
类似于Context中的方法,但是只接受一个模式为参数,默认当前Activity类名位文件名PreferencesManager类中的getDefaultSharePreference(context)方法:
静态方法,接受Context参数,自动使用当前程序的包名为文件名。
存储过程:
- 先通过edit()方法得到SharedPreference.Editor对象。
- 通过SharedPreference。Editor添加数据,使用其与数据类型相应的方法,如putBoolean(),putString()……
- 使用commit()方法将添加的数据提交,完成。
SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).editor();editor.putString("name","Tom");editor.getint("age",20);.......editor.commit();
读取过程:
通过对于相应的SharedPreference对象中提供的get()方法获取相应的数据。get()接受两个参数,一为存储时的键值,二为当找不到对应值时的默认返回值。
SharedPreference pref = getSharedPreference("datea",MODE_PRIVATE);String name = pref.getStrign("name","");int age = pref.getint("age",0);........................
清除修改数据:
通过Editor实现:
SharedPreferences sp = getSharedPreferences("name", Context.MODE_PRIVATE);Editor editor = sp.edit(); editor.clear(); editor.commit()
数据库:
正在学习SQL数据库…………
- 第一行代码 读笔⑥ (存储)
- 第一行代码(六)持久化存储技术
- 第一行代码笔记3:数据存储
- Android 数据存储 《第一行代码》
- 第一行代码-6.2 文件存储
- 第一行代码-6.3 SharedPreferences存储
- 第一行代码-6.4 SQLite数据库存储
- 【第一行代码】Android数据存储
- 第一行代码 读笔①
- [Android][第一行代码][第 6 章 数据存储]
- 【第一行代码-Android】学习(一)及在studio的迁移(5)存储数据
- 入门Android开发--第一行代码--笔记系列(存储读取Internal文件)
- 《第一行代码--Android》读书笔记之数据存储
- 《第一行代码》第六章 文件存储项目Test
- 《第一行代码》第六章 SharedPreferences存储Test
- 《第一行代码》第六章 SQLite存储Test
- Android第一行代码学习笔记四----数据存储
- 第一行代码笔记,第六章-----详解数据存储
- 纸牌发牌程序,数据结构
- 类图
- 爬坑笔记
- Struts2中OGNL概念和原理详解
- 过滤器的应用
- 第一行代码 读笔⑥ (存储)
- 【数据库】oracle数据库----内嵌视图
- hdu 1087 Super Jumping! Jumping! Jumping!
- 低功耗蓝牙BLE之报文
- IBM在人工智能方面的新进展,理解谈话情景和感知情绪
- 几大主流浏览器性能比较
- #leetcode#169Majority Element
- c#封装4x4的矩阵
- 使用Xcode Analyze进行代码静态检查