Как создать XML-файл в Android

Ребята, у меня проблема в том, что мой код выдает исключение как разрешение, когда мы пишем XML в Android. Кто-нибудь может сказать, что Как это будет удалено.

package com.ex.createXml;

import android.app.Activity;
import android.os.Bundle;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.xmlpull.v1.XmlSerializer;
import android.os.Environment;
import android.util.Log;
import android.util.Xml;
import android.widget.TextView;


public class createXml extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        File newxmlfile = new File("/data/new.xml");
        try{
            newxmlfile.createNewFile();
        }catch(IOException e)
        {
            Log.e("IOException", "Exception in create new File(");
        }
        FileOutputStream fileos = null;
        try{
            fileos = new FileOutputStream(newxmlfile);

        }catch(FileNotFoundException e)
        {
            Log.e("FileNotFoundException",e.toString());
        }
        XmlSerializer serializer = Xml.newSerializer();
        try{
        serializer.setOutput(fileos, "UTF-8");
        serializer.startDocument(null, Boolean.valueOf(true));
        serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
        serializer.startTag(null, "root");
        serializer.startTag(null, "Child1");
        serializer.endTag(null, "Child1");
        serializer.startTag(null, "Child2");
        serializer.attribute(null, "attribute", "value");
        serializer.endTag(null, "Child2");
        serializer.startTag(null, "Child3");
        serializer.text("Some text inside child 3");
        serializer.endTag(null,"Child3");
        serializer.endTag(null,"root");
        serializer.endDocument();
        serializer.flush();
        fileos.close();
        //TextView tv = (TextView)findViewById(R.);

        }catch(Exception e)
        {
            Log.e("Exception","Exception occured in wroting");
        }
    }
}

7 ответов

Решение

Попробуйте это, чтобы создать или прочитать файл в Android. работа с файлами

и для создания / чтения XML-файла попробуйте работать с XML

Если вам нужен какой-либо демонстрационный проект, связанный с XML, чем дайте мне знать, я постараюсь дать вам

File newxmlfile = new File("C:/new.xml");

Вы пытаетесь создать файл на диске C. Android - это система на основе Linux, поэтому там нет дисков. Запоминающие устройства могут быть подключены к корневому каталогу ("/") или любой другой папке.

Для вашего приложения /data/<pakcage-name> папка доступна. Попробуй там написать. Кроме того, вы можете попытаться выполнить запись во внешнее хранилище, но вашей программе потребуется разрешение для этого:

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Это должно быть упомянуто в вашем файле манифеста.

Узнайте больше здесь.

Из-за модели безопасности Android вы не можете писать в /data/new.xml, Это попытка доступа к корневой файловой системе, поэтому вы получаете отказ в разрешении. Попробуйте это без ведущей косой черты.

FileOutputStream fos = openFileOutput("new.xml", MODE_PRIVATE);
fos.write(...);

Это должно поставить его относительно вашего приложения.

Вы добавили необходимое разрешение для этого?

http://developer.android.com/reference/android/Manifest.permission.html

Разрешение на запись на SD-карту

Похоже, вы пытаетесь создать файл по адресу c:/, который не является допустимым идентификатором пути в системе Android. Android происходит из среды Linux.

http://developer.android.com/guide/topics/data/data-storage.html перейдите по этой ссылке, чтобы узнать больше о хранении данных на Android

Если вы хотите создать файл на локальном компьютере, сначала нужно создать его на устройстве Android, а затем извлечь его с устройства (эмулятора или реального телефона).

Вам не разрешено писать в это место.

File newxmlfile = new File("/data/new.xml");

Вы можете сохранить его во внутреннем хранилище или кеше.

Вы можете использовать это:

File xmlDir = new File(Environment.getExternalStorageDirectory().getPath() + "/data/new.xml");
Другие вопросы по тегам