2016-06-16 20 views
0

Hallo, ich versuche zu schreiben erstellen/aktualisieren für eine XML-Datei, aber wenn ich es versuche, passiert nichts. Ich bekomme E/Surface: getSlotFromBufferLocked: unbekannter Puffer: 0xb4097390, aber nicht, wenn es zusammenhängt.FileOutputStream erstellt kein XML-Dokument

mein Code:

String XMLyPerson = ""; 
     try { 
      XMLyPerson = createXMLPerson(entries); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     try { 
      FileOutputStream fos = openFileOutput("exml.xml", Context.MODE_PRIVATE); 
      OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fos); 
      outputStreamWriter.write(XMLyPerson); 
      fos.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

xml Methode

public static String createXMLPerson(List<Entry> list) throws IllegalArgumentException, IllegalStateException, IOException 
    { 

     XmlSerializer xmlSerializer = Xml.newSerializer(); 
     StringWriter stringWriter = new StringWriter(); 
     xmlSerializer.setOutput(stringWriter); 

     xmlSerializer.startDocument("UTF-8", true); 
     xmlSerializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); 

     xmlSerializer.startTag(ns, "entries"); 
     for (Entry entry: list) { 

      xmlSerializer.startTag(ns, "entry"); 

      xmlSerializer.startTag(ns, "title"); 
      xmlSerializer.text(entry.getTitle()); 
      xmlSerializer.endTag(ns, "title"); 
     for (Person p : entry.getVeiwers()) { 

       xmlSerializer.startTag(ns, "reader"); 
       xmlSerializer.text(p.getName()); 
       xmlSerializer.endTag(ns, "reader"); 

      } 
      xmlSerializer.endTag(ns, "entry"); 
     } 
     xmlSerializer.endTag(ns,"entries"); 
     xmlSerializer.endDocument(); 
     return stringWriter.toString(); 
    } 
+0

schafft es die Datei? Möglicherweise stürzt Ihr Code ab, bevor er versucht, ihn zu schreiben. Es ist auch ratsam, 'fos.flush()' vor dem Schließen aufzurufen. –

+0

nein. Soweit ich es sagen kann, stürzt es nicht ab und nichts wird in den Versuch gefangen. –

Antwort

0

Haben hinzugefügt Sie die Berechtigungen für das Schreiben von Dateien in Ihrem android.manifest?

Android persmissions

WRITE_EXTERNAL_STORAGE

+0

die Datei immer noch leer –

+0

Ihre XMLyPerson Zeichenfolge ist leer, nachdem createXMLPerson aufgerufen wurde? – ikkarion

+0

nicht hat es einen Wert. –