java - 写入和保存文件并打开它
问题描述
所以我的主要想法是在 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 )
解决方案
您不能写入 res/raw,因为它是 apk 文件的一部分。
但是您可以从 res/raw ant 读取,然后在应用程序的本地和私有存储中写入文件的副本。
然后,无论您打算对 res/raw 中的文件做什么,都可以在本地存储副本中执行。
推荐阅读
- ssh - SSH 服务连接 - 无法解析 privateKey:不支持的密钥格式
- javascript - 如何同时使用 2 个高阶组件?(为了使用 react-intl 中的 injectIntl)
- php - Laravel 5.5 Eloquent groupBy 上的多对多关系
- java - 如何连接邻接列表中的 2 个顶点?
- postgresql - AWS Aurora 和 PipelineDB
- python - Python字典键值进入Pyspark中的数据框where子句
- android - 无法通过 Sceneform ux ArFragment 读取 NFC 标签
- sql - 如何在一个表的列中选择另一个表中不可用的某些值
- c# - 抓取时如何处理分页
- mysql - 在MYSQL中的特定条件下查找最新日期的记录以及其他相应的值