在sd卡中创建的文件丢失了吗?

时间:2013-02-16 02:31:19

标签: java android android-sdcard

我正在使用此代码在SD卡上创建和编写文件,但在运行我的Android应用程序后,我似乎无法找到在SD卡中创建的任何文件。我不确定我的代码是否有问题或者是什么。请帮我。任何评论都会非常感谢。谢谢!

这是我正在使用的代码:

   private void writeToSDFile() {


    File root = android.os.Environment.getExternalStorageDirectory(); 
    tv.append("\nExternal file system root: "+root);



    File dir = new File (root.getAbsolutePath());
    dir.mkdirs();
    File file = new File(dir, "wordlist.txt");

    try {       



        FileOutputStream f = new FileOutputStream(file);


        PrintWriter pw = new PrintWriter(f);
        pw.println(stringword);
        pw.append(stringword);


        pw.flush();
        pw.close();
        f.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        Log.i(TAG, "******* File not found.);
    } catch (IOException e) {
        e.printStackTrace();
    }   
    tv.append("\n\nFile written to "+file);

}//end writeToSDFile

1 个答案:

答案 0 :(得分:0)

您的代码似乎没有任何问题,您必须确保两件事:

1-您在清单中有适当的许可,例如WRITE_EXTERNAL_STORAGE

2-外部存储空间为mounted,例如

if(Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED){
    // write your file
}

您的代码中存在冗余,行File dir = new File (root.getAbsolutePath());绝对没用。

您需要的只是:

File file = new File(Environment.getExternalStorageDirectory(), "wordlist.txt");