我尝试使用FileStream.writeObject
通过AIR编写一个xml对象我这样做:
var _file:File = File.applicationDirectory.resolvePath("test.xml");
var _xml:XML = new XML("<data><name>Testname</name><email>test@test.de</email><time>1331290186848</time></data>");
stream = new FileStream()
stream.open(_file, FileMode.WRITE);
stream.writeObject(xml);
stream.close();
不幸的是,这是结果
Å<data>
<name>Testname</name>
<email>test@test.de</email>
<time>1331290186848</time>
</data>
因为我对这个过程没有任何影响,我怎么能阻止AIR写出那些奇怪的字符呢?
谢谢你!答案 0 :(得分:4)
您应该将XML作为String写入文件。现在你把它写成一个XML对象,看起来很像一个String,但有一些额外的信息。我认为开头的奇怪字符代表字符串的长度。
使用writeUTFBytes()代替writeObject()。
所以替换
stream.writeObject(xml);
与
stream.writeUTFBytes(xml.toXMLString());
writeUTF()也不会这样做:如果你阅读the docs,你会看到它也将String的长度写为第一个字符。