第六章 数据存储全方案,详解持久化技术 主讲:王海
第六章 数据存储全方案--详解持久化技术 主讲:王海
本章目标 了解Android数据存储方式 能够使用/○流操作文件 能够读写SD卡文件 能够使用SharedPreferences存储 能够熟练使用SQLite进行数据的增删改查 Android软件开发 主讲:王海
Android软件开发 主讲:王海 本章目标 • 了解Android数据存储方式 • 能够使用I/O流操作文件 • 能够读写SD卡文件 • 能够使用SharedPreferences存储 • 能够熟练使用SQLite进行数据的增删改查
数据存储 Android提供了以下三种数据存储方式: √文件存储:少量数据需要保存,且数据格式无需结构化 √SharedPreferences存储:数据是以"key-value”键值对的方式 进行组织和管理,并保存到XML文件中 √SQLite数据库存储:用于数据量较多,且需要进行结构化存储 Android软件开发 主讲:王海
Android软件开发 主讲:王海 数据存储 • Android提供了以下 三种数据存储方式: 文件存储:少量数据需要保存,且数据格式无需结构化 SharedPreferences存储:数据是以“key-value”键值对的方式 进行组织和管理,并保存到XML文件中 SQLite数据库存储:用于数据量较多,且需要进行结构化存储
I/O流操作文件 通过Contextx对象提供的openFileInput(0和openFileOuput()两个方法分别来获 得文件的输入流和输出流: √FileInputStream openFileInput((String name):用于获取应用程序的数据 文件夹下指定"name”文件名的标准文件输入流,以便读取设备中的文件 √FileOutputStream openFileOuput(String name,int mode):用于s获取应 用程序的数据文件夹下指定“name”文件名的标准文件输出流,以便将数 据写入设备的文件中 Android软件开发 主讲:王海
Android软件开发 主讲:王海 I/O流操作文件 • 通过Context对象提供的openFileInput()和openFileOuput()两个方法分别来获 得文件的输入流和输出流: FileInputStream openFileInput(String name):用于获取应用程序的数据 文件夹下指定“name”文件名的标准文件输入流,以便读取设备中的文件 FileOutputStream openFileOuput(String name,int mode):用于获取应 用程序的数据文件夹下指定“name”文件名的标准文件输出流,以便将数 据写入设备的文件中
/O流操作文件 Context类中提供4个静态常量用于表示不同的输出模式 模式 功能描述 Context.MODE PRIVATE 私有模式所创建的文件都是私有文件,只能被应用本身所访问 Context.MODE_APPEND 附加模式首先会检查文件是否存在,若文件不存在,则创建新文件;若文 件存在,则在原文件的末尾追加内容 Context.MODE_WORLD_READABLE 可读模式,该模式的文件可以被其他应用程序读取 Context.MODE_WORLD_WRITABLE 可写模式,该模式的文件可以被其他应用程序读写 从Android4.2开始,不推荐使用Context.MODE_NORLD_WRITABLEi可读模式和 Context.MODE_WORLD_READABLE可写模式,由于这两种模式允许其他应用程序操作本应用程 注意 序所创建的文件数据,很容易会引起安全漏洞,因此在高版本的Android系统中尽量不要采用这两 种模式。 Android软件开发 主讲:王海
Android软件开发 主讲:王海 I/O流操作文件 • Context类中提供4个静态常量用于表示不同的输出模式 模式 功能描述 Context.MODE_PRIVATE 私有模式所创建的文件都是私有文件,只能被应用本身所访问 Context.MODE_APPEND 附加模式首先会检查文件是否存在,若文件不存在,则创建新文件;若文 件存在,则在原文件的末尾追加内容 Context.MODE_WORLD_READABLE 可读模式,该模式的文件可以被其他应用程序读取 Context.MODE_WORLD_WRITABLE 可写模式,该模式的文件可以被其他应用程序读写 从Android 4.2开始,不推荐使用Context.MODE_WORLD_WRITABLE可读模式和 Context.MODE_WORLD_READABLE可写模式,由于这两种模式允许其他应用程序操作本应用程 序所创建的文件数据,很容易会引起安全漏洞,因此在高版本的Android系统中尽量不要采用这两 种模式