我无法将FileWriter与SD卡上的文件一起使用 我在Manifest中有以下权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
我正在使用以下代码
File selected = new File("/storage/extSdCard/", "00 - Copy.txt");
FileWriter fw;
try {
fw = new FileWriter(selected, false);
fw.write(content);
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我在logcat中得到以下内容,知道/ storage / extSdCard / 00 - Copy.txt存在。
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ java.io.FileNotFoundException: /storage/extSdCard/00 - Copy.txt: open failed: EACCES (Permission denied)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at libcore.io.IoBridge.open(IoBridge.java:456)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at java.io.FileOutputStream.<init>(FileOutputStream.java:127)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at java.io.FileWriter.<init>(FileWriter.java:96)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at tk.hasankassem.supererase.MainActivity$5.run(MainActivity.java:302)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at libcore.io.Posix.open(Native Method)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at libcore.io.IoBridge.open(IoBridge.java:442)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ ... 4 more
我尝试过使用Environment.getExternalStorageDirectory(),但它也没有用。
更新 当我使用Environment.getExternalStorageDirectory()时,它会写入内部存储而不是SD卡。
答案 0 :(得分:1)
应在<application>
标记之外定义以下权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />