写入文件时出现问题

时间:2012-08-13 14:20:22

标签: java android file-io ioexception fileoutputstream

我正在尝试使用以下代码写入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"/>

但它不起作用。

3 个答案:

答案 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();