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

标签 apache-flex actionscript-3

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

根据 Flex 3 语言引用,它告诉我 writeUTF() 会预先考虑字符串的长度并引发 RangeError,而 writeUTFBytes() 则不会。

如有任何建议,我们将不胜感激。

最佳答案

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

您在哪里使用其中一种取决于您正在做什么。例如,我在复制要压缩的 XML 对象时使用 writeUTFBytes()。在这种情况下,我不关心字符串的长度,它会在代码中引入一些额外的内容。

writeUTF() 如果您正在编写流媒体/网络服务器,当您在消息中添加消息长度前缀时,您就知道之前要在另一端传输多少字节消息的结尾。例如,我有 200 字节的消息。我读取了长度(16 位整数),它告诉我该消息是 100 字节。我读了 100 个字节,我知道这是一条完整的消息。之后的一切都是另一条消息。如果消息长度表明消息为 300 字节,那么我就知道我必须等待一段时间才能收到完整消息。

关于apache-flex - 何时在 AS3 的 ByteArray 中使用 writeUTF() 和 writeUTFBytes(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5552277/

相关文章:

regex - 在 actionscript 正则表达式中指定 unicode 范围

sql - 如何根据修改后的值更新 SQL Server 表?

actionscript-3 - Actionscript 3 的面向方面的编程库/框架?

php - 阻止人们入侵Flash游戏的基于PHP的高分表的最好方法是什么

flash - AS3 Video MouseEvent Click 不起作用

actionscript-3 - Flex播放一系列声音文件

apache-flex - 在 datagrid flex 中创建一个 "total"列

actionscript-3 - Actionscript 3 getDefinitionByName 看不到类

css - 在 Flex 4 中圆化 DateField 的 Angular ?

apache-flex - 在 ubuntu 上安装 Flex SDK