我正在尝试使用以下代码写入Android应用中的文件:
File save = new File("sdcard/save.txt");
if(!save.exists()) {
try {
save.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
FileOutputStream fos = new FileOutputStream(save);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("1");
osw.flush();
osw.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
但是,我的调试器会转到IOException
osw.close();
问题是那个阶段e
不存在,所以我无法读取异常消息。
我在androidManifest.xml
中添加了正确的预设<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
但它不起作用。
答案 0 :(得分:2)
File save = new File("sdcard/save.txt"); is bad code
使用以下代码
String path= Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "myFile.txt";
File file = new File(path + File.separator + fileName);
答案 1 :(得分:0)
我认为您需要在manifest.xml
中提供权限。
答案 2 :(得分:0)
我最近以这种方式写了一个文件到我的SD卡:
private static final String sdcardPath = "/mnt/sdcard/yourfolder_or_fileName"
File folder = new File(path);
但如上所述,您应该使用此解决方案
String path= Environment.getExternalStorageDirectory().getAbsolutePath();