2017-11-30 137 views
5

Mam kod tak, aby plik serialize xml:Jak deserializować obiektu XMLSerializer z ByteArrayOutputStream jako wyjście

private byte[] bytes; 
... 
OutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
XmlSerializer newSerializer = Xml.newSerializer(); 
newSerializer.setOutput(byteArrayOutputStream, "utf-8"); 
newSerializer.startDocument("utf-8", null); 
newSerializer.startTag(null, "playlist"); 
newSerializer.attribute(null, "version", "1.0"); 
... 
put all my XML tags 
... 

newSerializer.endTag(null, "playlist"); 
newSerializer.endDocument(); 
this.bytes= byteArrayOutputStream.toByteArray(); 

Co muszę zrobić: przekonwertować ten bajt tablicy do pliku XML ponownie i ja nie wiem jak to zrobić!

+2

Czy trzeba tylko zapisać go do pliku, czy coś więcej? –

+0

Wysyłam ten obiekt ByteArray do gniazda. Ale nie wiem jak deserializować go. –

+2

Jak dokładnie chcesz deserializować? Od strony gniazda, czy chcesz zrobić coś takiego jak 'file.getTag (...)' lub po prostu chcesz zapisać go jako plik? –

Odpowiedz

2

można zmienić istniejący serializacji i deserialisation następująco:

try { 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     ObjectOutputStream os = new ObjectOutputStream(baos); 
     os.writeObject(newSerializer); 
     ObjectInputStream oin = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray())); 
     return (XmlSerializer) oin.readObject(); 
    } catch (Exception e) { 
     throw new Exception("Exception occurred:" + e.getMessage(), e); 
    }