Android开发:文件存取与数据库编程详解

需积分: 10 3 下载量 118 浏览量 更新于2024-07-29 收藏 3.94MB PDF 举报
"Android开发教程+笔记十二主要涵盖了文件存取和数据库编程的基础知识,适合Android开发者学习和参考。" 在Android应用开发中,文件存取是必不可少的一部分,它允许我们存储和读取大量的数据。Android提供了多种方法来处理文件操作。 ### 文件存取 #### 文件的概念 文件是一种持久性存储数据的方式,特别适用于存储大容量数据。Android系统允许应用访问本地文件,但通常限制于应用的私有目录,以保护用户隐私。文件存储的优点在于其大容量,而缺点在于如果文件格式或内容需要更新,可能需要进行大量编程工作。 #### 读文件 - 使用`Context.openFileInput(String name)`方法打开一个私有文件输入流,参数`name`是文件名。如果文件不存在,会抛出`FileNotFoundException`异常。 #### 写文件 - `Context.openFileOutput(String name, int mode)`用于打开一个私有文件输出流,`name`是文件名,`mode`定义了文件的打开模式,如添加模式(`MODE_APPEND`),在这种模式下,新数据会被追加到文件末尾。 - 示例代码展示了如何打开并关闭输入流和输出流以进行读写操作。 #### 读取静态文件 - 对于打包在应用程序内的静态文件,如资源文件,可以使用`Resources.openRawResource(int resid)`方法来读取。`resid`是资源ID,通常从`R.raw`类中获取。这些文件应放置在`res/raw/`目录下。 - 示例代码中展示了如何打开资源文件并关闭输入流。 ### 数据库编程 虽然文件存取对于大容量数据存储很有用,但数据库更适合于结构化的、需要查询的数据。Android使用SQLite作为轻量级的嵌入式数据库。 #### SQLite简介 - SQLite是一个开源的、事务性的关系型数据库,适合移动设备,因为它占用资源少且易于管理。 - 在Android中,每个应用都可以有自己的SQLite数据库,通过`SQLiteOpenHelper`子类来创建和升级数据库,以及`SQLiteOpenHelper`的`getWritableDatabase()`和`getReadableDatabase()`方法来获取可读写或只读的数据库实例。 #### 常见数据库操作 - 创建表:使用SQL的`CREATE TABLE`语句。 - 插入数据:使用`INSERT INTO`语句。 - 查询数据:使用`SELECT`语句,可以结合`WHERE`子句进行条件查询。 - 更新数据:使用`UPDATE`语句,同样可以配合`WHERE`子句指定更新条件。 - 删除数据:使用`DELETE FROM`语句,可以使用`WHERE`子句限制删除范围。 #### 使用Cursor - 当执行查询后,结果通常会返回一个`Cursor`对象,它就像一个指针,可以遍历查询结果。`Cursor`提供了移动到特定位置、获取列值等方法。 #### ContentProvider - 对于多个应用间共享数据,可以使用`ContentProvider`,它提供了一种标准化的方式来访问和暴露数据。 以上就是Android开发中关于文件存取和数据库编程的基本概念和操作,实际开发中,开发者需要根据需求选择合适的数据存储方式,并确保正确管理和维护数据。