首页 > 解决方案 > 写入和保存文件并打开它

问题描述

所以我的主要想法是在 res/raw 目录中打开一个上传的文件,编辑它,保存并重新打开它。但我还需要一个函数来设置默认值(用默认值覆盖 csv 文件),所以我需要 2 个文件,默认一个文件和我编辑和阅读的另一个文件。您不能编写文件并将其存储在 res/raw 目录中,这是真的吗?如果是,那么在这种情况下最好的方法是什么?我应该将所有内容保存在内部/外部存储中并稍后从这里打开吗?

try {
    FileOutputStream fileOut = openFileOutput("C:\\Users\\textfile.csv", MODE_WORLD_WRITEABLE);
    OutputStreamWriter outputWriter = new OutputStreamWriter(fileOut);
    for (int b = 0; b < test.AddName("Karlos",1,1,vardadienas).size(); b++) {
        outputWriter.write(test.AddName("Karlos",1,1,vardadienas).get(b));
        outputWriter.write("\n");
    }
    outputWriter.close();

} catch (Exception e) {
    e.printStackTrace();
}

我使用getResources() 方法并读取文件(上传到资源文件夹中),将其保存在列表数组中,编辑数组然后我应该保存,但是在哪里?还有为什么这个方法不创建任何文件?我已经设置了路径,但它没有创建任何东西..

我也收到此错误:


在com.example.firstapp.firstapp.MainActivity.onCreate(MainActivity.java:86)的 android.content.ContextWrapper.openFileOutput(ContextWrapper.java:201 )

标签: javaandroid

解决方案


您不能写入 res/raw,因为它是 apk 文件的一部分。

但是您可以从 res/raw ant 读取,然后在应用程序的本地和私有存储中写入文件的副本。

然后,无论您打算对 res/raw 中的文件做什么,都可以在本地存储副本中执行。


推荐阅读