1

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

但它不起作用。

4

3 回答 3

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);
于 2012-08-13T14:22:50.967 回答
0

我认为您需要在manifest.xml.

于 2012-08-13T15:15:58.247 回答
0

我最近以这种方式将文件写入了我的 sdcard:

private static final String sdcardPath = "/mnt/sdcard/yourfolder_or_fileName"
File folder = new File(path);

但是如上所述,您应该使用此解决方案

String path= Environment.getExternalStorageDirectory().getAbsolutePath();
于 2012-08-13T18:04:48.547 回答