写入SD卡
问题描述:
我有一个非常小的问题。我正在写一个文件到SD卡。我会告诉你两个代码,一个代码工作,其他代码不工作。它看起来是这样的:首先 一个,写入SD卡
new FileOutputStream("/sdcard/HelloWorld.txt")
这工作得很好,并创建一个SD卡文件HelloWorld.txt。
现在第二个,
new FileOutputStream(android.os.Environment.getExternalStorageDirectory()+java.io.File.separator + "filetest" + java.io.File.separator + "HelloWorld.txt")
这将引发错误 “/mnt/sdcard/filetest/HelloWorld.txt (No such file or directory)
”。 我想知道为什么,因为我的设备上有mnt/sdcard路径,它是否找不到filetest文件夹,如果是的话,是不是应该创建filetest文件夹,如果它没有创建之前。
谢谢。
答
首先如果没有可用做的filetest
目录,
File file = new File(android.os.Environment.getExternalStorageDirectory()+java.io.File.separator + "filetest");
file.mkdir();
然后执行代码......
OR
File f = new File(android.os.Environment.getExternalStorageDirectory()+java.io.File.separator + "filetest" + java.io.File.separator + "HelloWorld.txt");
if (!f.getParentFile().exists());
{
f.getParentFile().mkdir();
}
答
是....... 。 filetest文件夹不存在,所以你需要手动或编程创建它,并尝试该代码...所以你获得成功。
你也可以创建这样的目录::
File wallpaperDirectory = new File("/sdcard/filetest/");
// have the object build the directory structure, if needed.
wallpaperDirectory.mkdirs();
// create a File object for the output file
File outputFile = new File(wallpaperDirectory, filename);
// now attach the OutputStream to the file object, instead of a String representation
FileOutputStream fos = new FileOutputStream(outputFile);
使用许可:::
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
感谢。是的,它应该是这样的。 – 2011-12-22 12:56:16