Crear archivo xml y guardarlo en almacenamiento interno android

Quiero comprobar en el almacenamiento interno de Android si new.xml existe (que será creado por mí), entonces debería devolverme un identificador para él y yo puede ser fácilmente capaz de añadir nuevos datos a it.If no existe Crear una nueva y agregar datos a ella.

Mi estructura de archivos xml será tan simple como este.

 <root> <record>a</record> <record>b</record> <record>c</record> </root> 

Si el archivo está ahí, sólo añadiré un nuevo registro a it.But si no es que voy a crear un nuevo archivo y añadir el primer registro a la misma.

Y cómo podré leer estos datos en un arraylist . Un ejemplo con código sería un gran agradecimiento por adelantado.

Es bastante simple. Esto te ayudara:

  String filename = "file.txt"; FileOutputStream fos; fos = openFileOutput(filename,Context.MODE_APPEND); XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(fos, "UTF-8"); serializer.startDocument(null, Boolean.valueOf(true)); serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); serializer.startTag(null, "root"); for(int j = 0 ; j < 3 ; j++) { serializer.startTag(null, "record"); serializer.text(data); serializer.endTag(null, "record"); } serializer.endDocument(); serializer.flush(); fos.close(); 

Para leer datos utilizando el analizador de DOM:

  FileInputStream fis = null; InputStreamReader isr = null; fis = context.openFileInput(filename); isr = new InputStreamReader(fis); char[] inputBuffer = new char[fis.available()]; isr.read(inputBuffer); data = new String(inputBuffer); isr.close(); fis.close(); /* * converting the String data to XML format * so that the DOM parser understand it as an XML input. */ InputStream is = new ByteArrayInputStream(data.getBytes("UTF-8")); ArrayList<XmlData> xmlDataList = new ArrayList<XmlData>(); XmlData xmlDataObj; DocumentBuilderFactory dbf; DocumentBuilder db; NodeList items = null; Document dom; dbf = DocumentBuilderFactory.newInstance(); db = dbf.newDocumentBuilder(); dom = db.parse(is); // normalize the document dom.getDocumentElement().normalize(); items = dom.getElementsByTagName("record"); ArrayList<String> arr = new ArrayList<String>(); for (int i=0;i<items.getLength();i++){ Node item = items.item(i); arr.add(item.getNodeValue()); } 

Use getFilesDir () para obtener la ruta a donde puede crear archivos. Compruebe si el archivo existe creando un objeto de archivo File newXml = new File(getFilesDir+"/new.xml") . A continuación, compruebe si existe utilizando if(newXml.exists()) .

Para analizar los datos, consulte dev docs . Como se puede ver en el ejemplo XmlPullParser, puede devolver una lista.

Utilice openFileOutput para crear un archivo en el almacenamiento interno y getFileStreamPath para comprobar si ya existe y trabaja con ellos

Para leer los datos en la matriz sólo abra el flujo de archivos y utilice cualquier analizador XML adecuado

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.