Android开发:文件存储实战指南

需积分: 9 1 下载量 39 浏览量 更新于2024-07-24 收藏 923KB PPT 举报
“Android开发实战经典中的第8章数据存储,主要讲解了在Android应用中如何进行文件存储,包括Activity对文件存储的操作,如文件的保存和读取,并提供了相关的方法介绍。” 在Android开发中,文件存储是一种常见的数据持久化方式,特别是在需要存储大量或复杂数据时,文件存储比SharedPreferences更为适用。文件存储允许开发者将各种类型的数据(如文本、图片、音频等)写入文件,然后在需要时读取。以下是对Android应用中文件存储的详细解析: 1. Activity类对文件操作的支持 - `openFileInput(String name)`:此方法用于创建一个`FileInputStream`对象,从而可以读取指定名称的文件。文件通常存储在应用的私有数据目录下,因此只有该应用本身可以访问。 - `openFileOutput(String name, int mode)`:这个方法返回一个`FileOutputStream`对象,用于写入文件。参数`mode`定义了文件的访问权限,如`MODE_PRIVATE`(默认,只有应用可读写)、`MODE_APPEND`(追加模式)以及两种世界可读写的模式。 - `getResources()`:返回`Resources`对象,它提供了访问应用资源(如字符串、图像、颜色值等)的接口,虽然这不是直接与文件存储相关的,但在处理文件内容时可能需要使用到。 2. 保存文件 在Android中,保存文件通常涉及到`FileOutputStream`的使用。以下是一个简单的示例,展示了如何创建一个名为“mldn.txt”的文本文件并写入数据: ```java public class FileOperate extends Activity { private static final String FILENAME = "mldn.txt"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... try { FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); PrintStream ps = new PrintStream(fos); ps.println("这是写入文件的内容"); ps.close(); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } } } ``` 在这段代码中,我们首先通过`openFileOutput`获取`FileOutputStream`,然后使用`PrintStream`将字符串写入文件。记得在操作完成后关闭流,以释放资源。 3. 读取文件 读取文件则使用`FileInputStream`,通常配合`BufferedReader`来一行一行地读取文本内容: ```java public void readFile() { try { FileInputStream fis = openFileInput(FILENAME); BufferedReader br = new BufferedReader(new InputStreamReader(fis)); String line; while ((line = br.readLine()) != null) { Log.d("FILE_CONTENT", line); } br.close(); fis.close(); } catch (IOException e) { e.printStackTrace(); } } ``` 这里,我们打开文件输入流,然后创建一个`BufferedReader`来读取每一行的内容。 4. 文件路径和权限 Android应用的文件存储通常分为内部存储和外部存储。内部存储的文件位于应用的私有目录,安全性高但空间有限;外部存储(如SD卡)对所有应用开放,但需要申请相应的权限(如`WRITE_EXTERNAL_STORAGE`和`READ_EXTERNAL_STORAGE`)。 5. 注意事项 - 文件操作过程中要处理异常,如`FileNotFoundException`、`IOException`等。 - 写入文件前检查文件是否存在,避免覆盖已有数据。 - 使用完文件流后,及时关闭以防止资源泄露。 - 对于外部存储,要考虑到用户可能移除SD卡或者外部存储不可用的情况。 在实际开发中,根据数据的性质和应用场景选择合适的存储方式,文件存储是Android应用中不可或缺的一部分,尤其在处理多媒体数据、大型配置文件或者需要跨应用共享数据时。