在Android中写入现有资源XML文件

时间:2011-07-26 19:20:07

标签: android android-xml android-file

我正在尝试写入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();
....

1 个答案:

答案 0 :(得分:1)

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

编辑:您还可以使用应用程序的internal data folder将文件保存到,但是如果要修改资源,还需要将资源复制到那里。这将允许文件保留在应用程序的内部。