0

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

1 回答 1

1

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

编辑:您还可以使用应用程序的内部数据文件夹将文件保存到,但同样,如果您想修改它,您需要将资源复制到那里。这将允许文件保留在您的应用程序内部。

于 2011-07-26T19:25:52.977 回答