我正在尝试将字符串保存到以数据库中的日期命名的新文件中。我也给了读写权限。
这是处理创建文件并在其上书写的方法。
public void saveDocumentOnSD(Context context, String sFileName, String reportDetail) {
try {
if (StorageHelper.isExternalStorageReadable() && StorageHelper.isExternalStorageWritable()) {
// File root = new File(Environment.getExternalStorageDirectory().getAbsolutePath());
File root = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "");
if(!root.exists()) {
root.mkdirs();
}
File file = new File(root, sFileName);
FileWriter writer = new FileWriter(file);
writer.append(reportDetail+ "\n");
writer.flush();
writer.close();
popUpToast("Saved");
}
else{
popUpToast("No external storage"); // shows toast
}
} catch (IOException e) {
e.printStackTrace();
}
}
我一直收到这个错误:
java.io.FileNotFoundException:/ storage / emulated / 0 /下载/ 2017年11月24日(权限被拒绝)
这发生在“FileWriter writer = new FileWriter(file);
”
我试图将文件位置更改为
File root = new File(/mnt/media_rw/sdcard1);
它仍然会出现相同的错误
java.io.FileNotFoundException: /mnt/media_rw/sdcard1/Nov 24, 2017 (Permission denied)
我做错了吗?
这是我的清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.coursework.madsleuth">
<uses-feature android:name="android.hardware.camera2"
android:required="true"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application