我正在使用此代码在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
答案 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");