写给SD卡

时间:2011-12-22 12:40:46

标签: android

我有一个很小的问题。我正在写一个文件到SD卡。我给你看两个代码,一个代码有效,另一个代码没有。它看起来像这样: 第一个,

new FileOutputStream("/sdcard/HelloWorld.txt")

这很好用,并在sdcard中创建一个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文件夹,如果之前没有创建它。

感谢。

2 个答案:

答案 0 :(得分:4)

首先制作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();
    }

答案 1 :(得分:2)

是........ 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" />