【发布时间】:2012-05-16 00:41:31
【问题描述】:
我有一个需要保存文件的 Android 应用。 我这样创建文件:
FileOutputStream fOut = openFileOutput(fileName,
MODE_WORLD_READABLE);
osw = new OutputStreamWriter(fOut);
我是这样打开的:
FileInputStream srcFileStream = openFileInput(fileName);
这适用于内部存储器文件。 我在我的应用程序中添加了一个偏好,用户可以在其中选择将文件保存到 sd 卡。 我试试这个命令:
if (Prefs.getCard(this))
fileName="/sdcard/"+fileName;
意思是如果 Prefrences 是 yes,我在文件名前面添加“/sdcard/”。 其余代码保持不变,
这似乎不起作用,因为我得到一个异常:
File /sd/file1 contains a path seperator
我如何使用相同的代码来保存到 SD 卡和内存中,只需要像上面尝试的那样做一些小的修改?
【问题讨论】:
-
您必须以普通的旧 Java 方式打开流。
Context的文件操作不允许子目录,只能在你的内部应用目录中工作 -
当我这样做时,我得到:打开失败:EACCES(权限被拒绝)
标签: android file file-io sd-card