Как получить доступ к папке ресурсов в проекте Android? - PullRequest
2 голосов
/ 29 сентября 2011

Я получаю доступ к файлу XML, помещенному в папку проекта (например, «активы»), для открытия и чтения данных из файла.

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = factory.newDocumentBuilder();
InputStream iS = this.getAssets().open("myFile.xml");  
Document doc = docBuilder.parse(iS);

но если я хочу отредактировать файл, я не могу найти путь для его сохранения.

TransformerFactory transfac = TransformerFactory.newInstance();
            Transformer trans = transfac.newTransformer();
                //create string from xml tree
                StringWriter sw = new StringWriter();
                StreamResult result = new StreamResult(sw);
                DOMSource source = new DOMSource(doc);
                trans.transform(source, result);
                String xmlString = sw.toString();
                OutputStream f0;
            byte buf[] = xmlString.getBytes();
            **f0 = new FileOutputStream("/assets/wines.xml");**
            //f0 = new FileOutputStream("file:///assets/wines.xml");
            for(int i=0;i<buf .length;i++) {
               f0.write(buf[i]);
            }
            f0.close();
            buf = null;

Я всегда получаю FileNotFoundException в строке:

f0 = new FileOutputStream("/assets/wines.xml");

Есть идеи?Спасибо!

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Если вы пытаетесь edit or write файл в assets or raw folder. Я думаю, что это невозможно. Это невозможно сделать

0 голосов
/ 29 сентября 2011

Bettery попробуйте сохранить его на SD-карту или во внутреннее хранилище

Используйте File sdDir = [Environment.getExternalStorageDirectory()][1];, чтобы получить путь SD-карты.

И не забудьте дать разрешение

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...