当我们在使用各种程序时,其实际上是在和各种数据打交道,当我们聊QQ,刷微博,看新闻,其实都是在和里面的数据交互
例如在聊天时发出的消息,以及在登录时输入的账号密码,其实都是瞬时数据,那什么是瞬时数据呢?就是指储存在内存中,有可能因为程序关闭或者其他原因导致内存被回收而丢失的数据。如果这些数据丢失,那么你刚发的微博,刚聊的QQ可能都会丢失,这就要说到一个重要的技术数据持久化技术
数据持久化是指将那些内存中的瞬时数据保存在储存设备中,保证在突然关闭手机或电脑时,这些数据不会丢失。保存的数据属于瞬时状态,而储存的设备是持久状态,数据持久化技术其实提供了一种机制让数据在瞬时状态和持久状态间转换
本文要讲的就是三种数据持久化技术之一的文件存储
内部存储数据:
默认情况下,内部存储数据是保存在当前应用的私有文件,其他应用或用户不能访问。在卸载应用时,文件会随之删除。
在Context类中提供了两个方法用来处理内部存储数据,其中打开一个内部存储文件并写入数据的是:openFileOutput,打开一个内部存储文件并且读取数据的是:openFileInput
外部存储数据:
首先需要权限 READ_EXTERNAL_STORAGE或者WRITE_EXTERNAL_STORAGE可在AndroidManifest.xml中申请权限
然后通过 Environment.getExternalStorageDirectory();获取外部存储路径,接着就可以用openFileOutput和openFileInput,读写数据了
而操作文件的模式主要有两种:
MODE_PRIVATE:默认操作模式,表示当指定同样文件名时,所写入的内容会覆盖原文件的内容
MODE_APPEND:表示,如果该文件如果存在就往该文件的里面追加内容
文件存储是Android中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有的数据都是原封不动的保存在文件中,因此它适合存储一些简单的文本数据或二进制数据。如果想使用文件存储的方式保存一些比较复杂的数据,就需要定义一套自己的格式规范