Beim Serialisieren fehlt die letzte Zeile

Diskutiere Beim Serialisieren fehlt die letzte Zeile im XML und Co. Bereich.
R

rhilge

Hallo,

wenn ich den XMLEncoder benutze, wird die XML zwar ertellt, aber es fehlt immer die letzte Zeile im XML Dokument. Konkret das "</java>". Hat jemand eine Idee woran das liegen kann, ohne dass ich den ganzen Code hier reinstellen muss?
 
H

httpdigest

Eventuell wird in dem XMLEncoder oder einem zwischenliegenden Stream gepuffert. Schon XMLEncoder.close() aufgerufen? Ansonsten: Wo lässt du den Output denn hinschreiben? In eine Datei? Und wie stellst du ganz genau fest, dass die letzte Zeile fehlt?
 
R

rhilge

Also ich mache zunächst:
Code:
        fileOutputStreamPlay = new FileOutputStream("playlist.xml");
        encoderPlay = new XMLEncoder(fileOutputStreamPlay);
Dann kommt
Code:
encoderPlay.writeObject(p);
encoderPlay.flush();
Code:
  try{
            fileOutputStreamPlay.close();
            encoderPlay.close();
        }catch (IOException ex){
            ex.printStackTrace();
        }
Mich wundert, dass es immer die letzte Zeile ist, die fehlt.
 
H

httpdigest

Das Problem ist, dass du zuerst den fileOutputStream schließt und somit der encoderPlay.close() keine Chance mehr hat, das Postamble (siehe referenzierten JavaDoc) zu schreiben.
JavaDoc von close(): "This method calls flush, writes the closing postamble and then closes the output stream associated with this stream."
 
R

rhilge

WEnn ich die Zeile manuell hinzufüge, klappt auch das laden der xml also scheint diese ansonsten korrekt zu sein
 
Thema: 

Beim Serialisieren fehlt die letzte Zeile

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben