微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

flex – 何时在AS3的ByteArray中使用writeUTF()和writeUTFBytes()

我正在尝试为自己创建一个文件格式,所以我正在为我的文件形成标题.要将已知长度的字符串写入ByteArray,我应该使用哪种方法,writeUTF()或writeUTFBytes().

从Flex 3语言参考,它告诉我writeUTF()预先设置字符串的长度并抛出RangeError,而writeUTFBytes()则不会.

任何建议都将不胜感激.

解决方法

两者之间的唯一区别是writeUTFBytes()不会在消息前加上字符串的长度(RangeError是因为65535是您可以存储在16位中的最大数字)

你在哪里使用一个取决于你正在做什么.例如,我在复制XML对象时使用writeUTFBytes()进行压缩.在这种情况下,我不关心字符串的长度,它会为代码引入额外的东西.

如果您正在编写流/网络服务器,writeUTF()非常有用,在消息长度为消息前缀的前提下,您知道在消息结束之前在另一端流式传输多少字节.例如,我有200个字节的消息.我读取了长度(16位整数),它告诉我消息是100个字节.我读了100个字节,我知道这是一个完整的消息.之后的一切都是另一个信息.如果消息长度表示消息是300字节,那么我知道在得到完整消息之前我必须等一下.

原文地址:https://www.jb51.cc/flex/174186.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐