2017-11-30 5 views
5

私は、シリアル化xmlファイルにするために、このようなコードを持っている:もう一度、私XMLファイルにバイト配列に変換する:私がする必要がどのような出力としてByteArrayOutputStreamとのXmlSerializerオブジェクトをデシリアライズする方法

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

をそれを行う方法を知らない!

+2

は、あなただけのファイル以上の何かにそれを保存する必要がありますか? –

+0

私はこのByteArrayをソケットに送ります。 しかし、それを逆シリアル化する方法はわかりません。 –

+2

どのように正確にデシリアライズしますか?ソケット側から、 'file.getTag(...)'のようなことをしたいのですか、単にファイルとして保存したいのですか? –

答えて

2

次のようにあなたがあなたの既存のシリアライズとデシリアライゼーションを変更することができます。

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); 
    } 
関連する問題