How to deserialize an XMLSerializer object using ByteArrayOutputStream as output

I have code like this to make the XML file serialize:

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(); 

What I need to do: convert this byte array to an XML file again, and I don't know how to do it!

+5
source share
1 answer

You can modify existing serialization and deserialization as follows:

 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); } 
+2
source

Source: https://habr.com/ru/post/1273774/


All Articles