我正在尝试为自己创建一个文件格式,所以我正在为我的文件形成标题.要将已知长度的字符串写入ByteArray,我应该使用哪种方法,writeUTF()或writeUTFBytes().
从Flex 3语言参考,它告诉我writeUTF()预先设置字符串的长度并抛出RangeError,而writeUTFBytes()则不会.
任何建议都将不胜感激.
解决方法
两者之间的唯一区别是writeUTFBytes()不会在消息前加上字符串的长度(RangeError是因为65535是您可以存储在16位中的最大数字)
你在哪里使用一个取决于你正在做什么.例如,我在复制XML对象时使用writeUTFBytes()进行压缩.在这种情况下,我不关心字符串的长度,它会为代码引入额外的东西.
如果您正在编写流/网络服务器,writeUTF()非常有用,在消息长度为消息前缀的前提下,您知道在消息结束之前在另一端流式传输多少字节.例如,我有200个字节的消息.我读取了长度(16位整数),它告诉我消息是100个字节.我读了100个字节,我知道这是一个完整的消息.之后的一切都是另一个信息.如果消息长度表示消息是300字节,那么我知道在得到完整消息之前我必须等一下.