gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 01:22:39 27 4
gpt4 key购买 nike

我正在尝试为自己创建一种文件格式,因此我正在为我的文件形成标题。要将已知长度的字符串写入 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com