Android SD 卡文件系统读写指南79
Android 设备上的 SD 卡提供了额外的存储空间,用于存放应用程序、媒体文件和其他数据。为了与 SD 卡交互,Android 操作系统提供了文件系统 API,允许应用程序读取、写入和管理卡上的文件。
文件系统支持
Android 支持以下文件系统上的 SD 卡:
FAT32
exFAT
NTFS(Android 10 及更高版本)
访问权限
为了访问 SD 卡,应用程序需要以下权限:
READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE
这些权限可以添加到应用程序的清单文件中:
<manifest>
<uses-permission android:name=".READ_EXTERNAL_STORAGE" />
<uses-permission android:name=".WRITE_EXTERNAL_STORAGE" />
</manifest>
文件系统 API
Android 为文件系统交互提供了以下 API:
这些 API 允许应用程序使用标准 Java I/O 流来读取和写入 SD 卡上的文件。
访问 SD 卡
要访问 SD 卡,应用程序可以使用以下步骤:
获取 SD 卡的根目录:
File sdCard = ();
使用 File 对象导航 SD 卡并访问文件:
File myFile = new File(sdCard, "");
使用 I/O 流读取或写入文件:
FileInputStream fis = new FileInputStream(myFile);
FileOutputStream fos = new FileOutputStream(myFile);
注意事项
以下是使用 SD 卡时需要注意的一些事项:
SD 卡可能会被移除或损坏,因此应用程序应处理这些情况下的错误。
应用程序只能访问其自己的私有存储空间,除非它们有 MANAGE_EXTERNAL_STORAGE 权限。
在 Android 11 及更高版本中,应用程序对外部存储的访问受到分区存储框架的限制。
示例
以下示例代码演示了如何在 Android 中读写 SD 卡上的文件:
public class SDCardExample {
public static void main(String[] args) {
// 获取 SD 卡根目录
File sdCard = ();
// 创建一个新文件
File myFile = new File(sdCard, "");
// 向文件中写入数据
try (FileOutputStream fos = new FileOutputStream(myFile)) {
("Hello world!".getBytes());
} catch (IOException e) {
();
}
// 从文件中读取数据
try (FileInputStream fis = new FileInputStream(myFile)) {
byte[] data = new byte[100];
(data);
(new String(data));
} catch (IOException e) {
();
}
}
}
通过遵循这些指南,应用程序可以有效地与 Android 设备上的 SD 卡交互,从而扩展其存储和文件管理功能。
2024-10-18