我正在尝试写入Android设备上/ res / xml目录中的现有XML文件。两个问题:
1)这些文件是否可以被覆盖? 2)如果是这样,我如何获得该文件的句柄?
我这样做无济于事:
FileOutputStream fos;
try {
fos = openFileOutput("/res/xml/scores.xml", Context.MODE_PRIVATE);
fos.write(writer.toString().getBytes());
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
更新
尝试使用以下方式读取文件:
....
PriorityQueue<Score> scores = new PriorityQueue<Score>();
XmlPullParserFactory xmlFac = XmlPullParserFactory.newInstance();
XmlPullParser qXML = xmlFac.newPullParser();
File scoresFile = new File(c.getExternalFilesDir(null), "scores.xml");
InputStream is = new FileInputStream(scoresFile);
qXML.setInput(is,null);
....
尝试使用以下方式写入文件:
....
File scoresFile = new File(getExternalFilesDir(null), "scores.xml");
OutputStream os = new FileOutputStream(scoresFile);
os.write(writer.toString().getBytes());
os.flush();
os.close();
....
答案 0 :(得分:1)
您需要使用设备上的external storage。你不能也不应该写资源。而是将资源复制到外部存储,然后在那里进行修改。
编辑:您还可以使用应用程序的internal data folder将文件保存到,但是如果要修改资源,还需要将资源复制到那里。这将允许文件保留在应用程序的内部。