2012-03-09 32 views
1

我試着通過AIR編寫的XML對象與FileStream.writeObjectFileStream.writeObject產生不想要的字符

我在做這樣的:

var _file:File = File.applicationDirectory.resolvePath("test.xml"); 
var _xml:XML = new XML("<data><name>Testname</name><email>[email protected]</email><time>1331290186848</time></data>"); 

stream = new FileStream() 
stream.open(_file, FileMode.WRITE); 
stream.writeObject(xml); 
stream.close(); 

不幸的是,這是結果

Å<data> 
    <name>Testname</name> 
    <email>[email protected]</email> 
    <time>1331290186848</time> 
</data> 

由於我對這個過程沒有任何影響,我該如何防止AIR寫這些奇怪的字符?

謝謝!

+0

不知道,但我想你應該使用writeUTF()或writeUTFBytes() – RIAstar 2012-03-09 11:00:04

+1

其實我_am_確保只寫你的XML作爲一個字符串;)否則你會寫爲XML對象,因此奇怪的字符。 – RIAstar 2012-03-09 11:01:39

+0

writeUTF產生同樣的問題... – 2012-03-09 11:08:43

回答

4

您應該將您的XML作爲字符串寫入文件。現在你將它寫成一個XML對象,它看起來很像一個String,但有一些額外的信息。我認爲在開始時奇怪的字符代表了字符串的長度。

使用writeUTFBytes()而不是writeObject()。

所以更換

stream.writeObject(xml); 

stream.writeUTFBytes(xml.toXMLString()); 

writeUTF()不會做的伎倆之一:如果你讀the docs,你會看到它寫入字符串的長度第一個字符也是。

+0

這樣做:))謝謝! – 2012-03-09 11:13:55

相關問題