1

我已经研究了这个问题一段时间了,我只找到了非常复杂的答案,所以我很困惑。请记住,我不是专业的程序员,所以不要指望我对此有很多了解!

我要做的就是将一行新字符打印到位于 Android 中 SD 卡的下载文件夹中的文本文件中。我将我的模拟器设置为有一张 SD 卡,并将文本文件放在下载文件夹中。这段代码用于一个数据库类,它将访问 SD 卡中的文本文件以读取数据。我知道该类在 Android 之外工作,因此假设所有方法都在正常工作以读取数据!

当我在另一个类中运行此方法时,我得到一个 IOException:

public void addRecordToDataBase(ChildRecord c) throws IOException
{
    FileWriter outFile = new FileWriter("/mnt/sdcard/download/database.txt");
    PrintWriter out = new PrintWriter(outFile);
    out.println(c.printToDataBase());
    out.close();
}

奇怪的是,我可以在使用相同路径的其他方法中很好地从数据库中读取;那里没有问题。我就是写不出来。我在某处读到,您可以使用“常规 Java 方法”在 Android 中写入 SD 卡,而无需到处乱找那些疯狂的“OutputStream”。这是真的?我调试了这个东西,发现抛出异常的代码行就在这里:

FileWriter outFile = new FileWriter("/mnt/sdcard/download/database.txt");

如果有人知道为什么我会收到此 IOException,我将不胜感激!我确实尝试了 Android 想要使用的所有疯狂方法,但我想我迷失了,所以我只是回到了我知道该怎么做的事情上。

太感谢了!

4

2 回答 2

1

您是否在应用清单文件中声明了WRITE_EXTERNAL_PERMISSION权限?

于 2011-11-25T19:11:23.167 回答
1

我的猜测是你不能以写权限访问这样的目录,至少以这种方式。

你看过http://developer.android.com/guide/topics/data/data-storage.html#filesExternal吗?

该参考资料和这个参考资料(http://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String))解释了 getExternalFilesDir 的工作原理,可能对您有所帮助!

于 2011-11-25T18:52:24.613 回答