清泛IT社区

标题: 【二进制】UrsAI2ByteArray 字节数组扩展:读写二进制数据,二进制文件读写 [打印本页]

作者: App Inventor 2     时间: 昨天 16:53
标题: 【二进制】UrsAI2ByteArray 字节数组扩展:读写二进制数据,二进制文件读写
来源:https://www.fun123.cn/reference/iot/bytearray.html

功能概述
字节数组扩展允许对存储的数据进行顺序和随机访问。随机访问的索引基址(第一个元素的索引)可以使用Base属性设置。可能的值为1(App Inventor中常用)或0(Java或C中常用)。
组件以空数组开始,这意味着它不包含任何元素。可以使用以下方法添加元素:
对于AddWord和AddDWord,MsbFirst属性定义了字节添加到数组的顺序(字节序)。可以使用Append方法将另一个字节数组的内容添加到数组中。
Fill函数用指定数量的指定值元素填充数组。InsertByteAt函数在指定位置插入一个字节,其他元素向后移动一个位置。RemoveByteAt删除指定位置的字节,后续字节向前移动。RemoveBytes删除指定数量的字节。可以使用SetByteAt函数更改一个字节。
Clear函数从字节数组中删除所有元素。
顺序访问使用ReadByte、ReadWord或ReadDWord函数完成。MsbFirst属性定义字节顺序。ReadIndex属性指定接下来将读取的数组中的位置。为了读取特定元素,也可以相应地设置ReadIndex。Available属性返回还可以读取多少字节。
ToString方法将数组内容返回为两位十六进制数字序列。使用ToHex可以将字节、字或双字转换为其十六进制表示。HexPrefix属性指定在十六进制数字前面放置哪个字符串,默认设置为”0x”。
可以使用以下方法插入和读取字符串:
UTF-8编码的字符串通常每个字符需要多个字节。GetUTF8ByteSize返回存储UTF-8字符串所需的字节数。
可以使用WriteToFile和ReadFromFile方法将内容写入文件或从文件读取。例如,如果通过UDP(URS AI2 UDP扩展)或MQTT(URS AI2 MQTT扩展)传输图像,它们不能直接插入到图像组件中。这里有助于将数据存储在临时中间文件中,并从那里加载到图像块中。
注意:两个函数都异步执行!文件操作的结束以及文件或数据的可用性由AfterFileWritten和AfterFileRead事件指示。AfterFileWritten返回写入文件的绝对路径。
WriteToFileSync和ReadFromFileSync方法用于同步写入或读取数据。这意味着函数在操作完成且文件或数据可用时返回。对于大量数据,这可能导致较长的响应时间。
可以使用DeleteFile删除(临时)文件。
注意: 文件名(路径)的约定对应于标准文件组件的约定。

使用示例
基本字节数组操作
示例应用界面
积木示例







欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/) Powered by Discuz! X3.3