我正在尝试写入“numbers.txt”文件。它位于原始文件夹中。
我正在使用此功能写入文件:
public void writeToFile(String data) {
try {
Uri url = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.numbers);
String Path = url.toString();
File f = new File(Path);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(f));
outputStreamWriter.write(data);
outputStreamWriter.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
当我运行该功能时,Log说:
文件写入失败:java.io.FileNotFoundException:android.resource:/com.sakt.emergencymessage/2131099648:open failed:ENOENT(没有这样的文件或目录)
但文件存在,我可以从中读取。
是的,我在Manifest中写了WRITE_EXTERNAL_STORAGE权限。
谢谢你的帮助。
答案 0 :(得分:2)
您无法写入资源文件。它们是只读的。
答案 1 :(得分:0)
您需要使用设备上的外部存储空间。你不能也不应该写资源。而是将资源复制到外部存储,然后在那里进行修改。