首先,需要在AndroidManifest.xml中添加外部存储权限:
然后,在代码中使用File对象读取文件,需要注意区分内部存储和外部存储。例如,如果想从SD卡根目录下读取文件,可以这样做:
File file = new File(Environment.getExternalStorageDirectory(), "filename");
try {
FileInputStream fis = new FileInputStream(file);
//开始读取文件
} catch (FileNotFoundException e) {
e.printStackTrace();
}
需要注意的是,如果设备没有SD卡或者应用程序没有SD卡读取权限,会出现FileNotFoundException异常。此时,可以使用以下代码检查是否拥有读取外部存储的权限:
int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {
//需要申请权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
} else {
//有权限,可以开始读取文件
}
以上代码会在需要时自动弹出权限申请对话框,用户同意后即可读取SD卡文件。