数据持久化就是指将内存中的瞬时数据保存到存储设备中 , 保证即使设备在重启之后 , 数据仍然不会丢失 。持久化技术提供了一种机制可以让数据在瞬时状态和持久状态之间进行转换 。
系统主要提供了三种方式用于实现数据持久化功能:文件存储、存储、以及数据库存储 。
一、文件存储
——数据持久化技术(一) 文件存储
二、存储
不同于文件存储 , 是使用键值对的方式来存储数据的 。每存储一条数据 , 都需要给这条数据一个对应的键值 , 然后在需要读取数据的时候也是根据键值来取出相应的数据 。由此可见 , 当需要存储的数据结构比较复杂的时候 , 存储的便捷性和可用性优点就体现出来了 。
2.1 使用存储数据
中主要提供了3种方法用于得到对象:
1.类中的()方法
此方法接收两个参数 , 第一个参数用于指定文件的名称 , 如果指定文件不存在则新建一个 。文件默认存放在/data/data/
【二Android——数据持久化技术 SharedPreference存储】//目录下 。第二个参数用于指定操作模式 , 默认的操作模式是 , 和传入0一样 。目前也只有这一种模式可选 , 和这两种模式在 4.2版本中被废弃 , 模式在 6.0中被废弃 。
2.类中的()方法
这个方法和中的()方法很相似 , 不过它只接受一个操作模式参数 , 因为使用这个方法时会自动将当前活动类名作为的文件名 。
3.类中的()方法
这是一个静态方法 , 它接受一个参数 , 并自动使用当前程序包名作为前缀来命名文件 。
文章插图
在得到对象后 , 就可以向文件中存储数据了 。向文件中存储数据需要三步:
(1)调用对象的edit()方法来获取一个.对象 。
(2)向.对象中添加数据 , 如添加一个布尔型数据使用()方法 , 添加一个字符串则使用()方法 , 以此类推 。
(3)调用apply()方法将添加的数据提交 , 从而完成数据存储操作 。
下面创建一个t的例子来说明的存储方式(第一、第二个方法):
首先创建包含一个控件的布局,用于触发存储数据的操作:
然后在中将数据存储到文件中:
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button saveData = http://www.kingceram.com/post/(Button) findViewById(R.id.savedata);Button readData = (Button) findViewById(R.id.readdata);saveData.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v){//1.Context类中的getSharedPreferences()方法SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit();//2.Activity类中的getPreferences()方法//SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();editor.putString("name", "Roy");editor.putInt("age", 20);editor.putBoolean("Male", true);editor.apply();}});}}
在()中注册的点击事件里面 , 通过()方法指定用于存储数据的文件的名字为data(方法二通过()方法指定操作模式 , 文件名默认为活动类名),并得到.对象 。然后通过put方法向该对象添加不同类型的数据 , 最后调用apply()方法进行提交 , 完成数据存储 。
- 论android 中list erase用法
- 算法介绍及实现——卡尔曼滤波
- Hash Table 算法数据结构基础——哈希表
- C语言—普通、静态、局部、静态局部变量
- 二、Redis持久化
- 10分钟搭建 NDK 的 Android 开发环境
- 基于Android的人脸识别门禁系统
- 案例分享—服务器被植入挖矿程序排查
- PowerShell执行python报错——未设置python路径
- Python从Oracle数据库中获取数据——fetchall