0

我正在使用此代码在 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
4

1 回答 1

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");
于 2013-02-16T02:42:59.267 回答