2016-06-16 10 views
0

こんにちは私はxmlファイルの作成/更新を書こうとしていますが、何もしないときは何も起こりません。私はE/Surfaceを取得しています。getSlotFromBufferLocked:未知のバッファ:0xb4097390ですが、関連していないとしません。FileOutputStreamがxmlドキュメントを作成していません

私のコード:あなたのandroid.manifestでファイル書き込みの権限を

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方式

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

それはファイルを作成していますか?コードを書き込もうとするとクラッシュする可能性があります。また、閉じる前に 'fos.flush()'を呼び出すことをお勧めします。 –

+0

番号。私がクラッシュしているとは言えませんが、try catchでキャッチされているものは何もありません。 –

答えて

関連する問題