Android 数据持久化之 文件存储
在 Android 开发中,存储文件是一个常见的需求。
本文中介绍 openFileOutput 和 File 两种不同的方式来操作文件。
一、File 方式
根据文件的存储位置和访问权限,可以将文件存储分为内部存储(Internal Storage)和外部存储(External Storage)。
1、 内部存储(Internal Storage)
内部存储是应用私有的存储空间,其他应用无法访问。它适用于存储敏感信息或应用专用的数据。
2、外部存储(External Storage)
外部存储是共享的存储空间,其他应用可以访问。从 Android 10(API 级别 29)开始,外部存储的访问方式发生了变化,引入了分区存储(Scoped Storage)。
3、注意事项
权限:
内部存储不需要特殊权限。
外部存储需要 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限。从 Android 10 开始,建议使用分区存储,减少对这些权限的依赖。
分区存储:
从 Android 10 开始,推荐使用分区存储,通过 context.getExternalFilesDir() 或 MediaStore API 访问外部存储。
文件路径:
内部存储路径:context.filesDir
外部存储路径:context.getExternalFilesDir(null)
二、openFileOutput 方式
在 Android 开发中,openFileOutput 是一个用于在内部存储中创建或打开文件的方法。它属于 Context 类,通常用于写入私有文件。这些文件存储在应用的内部存储目录中,其他应用无法访问。