当在Android上写入文件时出现“PermissionError: [Errno 13] 权限被拒绝”错误,这意味着您的应用程序没有足够的权限来执行写入操作。以下是解决此问题的几种方法:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE);
}
然后,您需要实现onRequestPermissionsResult回调方法来处理用户对权限请求的响应:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == PERMISSION_REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限被授予,可以执行写入操作
} else {
// 权限被拒绝,无法执行写入操作
}
}
}
File file = new File(getFilesDir(), "myfile.txt");
try {
FileOutputStream outputStream = new FileOutputStream(file);
// 执行写入操作
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
请注意,这些解决方法的适用性取决于您的具体需求和应用程序的设置。根据您的情况选择适当的方法。