2017-11-30 14 views
5

मैं एक serialize xml फ़ाइल बनाने के लिए इस तरह की एक कोड है:आउटपुट के रूप में ByteArrayOutputStream के साथ एक XmlSerializer वस्तु deserialize कैसे

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

मैं इस बाइटएरे को सॉकेट में भेजता हूं। लेकिन मुझे नहीं पता कि इसे कैसे deserialize करने के लिए। –

+2

आप इसे कैसे बेकार करना चाहते हैं? सॉकेट पक्ष से, क्या आप 'file.getTag (...)' जैसे कुछ करना चाहते हैं या आप इसे फ़ाइल के रूप में सहेजना चाहते हैं? –

उत्तर

2

इस प्रकार आप अपने मौजूदा क्रमबद्धता और deserialisation बदल सकते हैं:

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); 
    } 
संबंधित मुद्दे