写入原始文件时出现FileNotFoundException

时间:2015-06-22 19:16:11

标签: java android

我正在尝试写入“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权限。

谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

您无法写入资源文件。它们是只读的。

答案 1 :(得分:0)

您需要使用设备上的外部存储空间。你不能也不应该写资源。而是将资源复制到外部存储,然后在那里进行修改。