首页 > 代码库 > 求个byte数据处理方案,谢谢

求个byte数据处理方案,谢谢

============问题描述============


蓝牙实时收到一系列有规则数据。如下
55 AA 81 01   5C    00 0C     31 02        FF 01 00 0B     00 04     41 46 66 66
55 AA 81 01  =  数据头
5C  = 效验位
00 0C = 数据长度
31 02 = 数据命令字
FF 01 00 0B = 某一项数据的ID
00 04 = 某一项数据的长度
41 46 66 66 = 某一项数据的值(IEEE-754格式的单精度4字节浮点数)

Android的蓝牙串口接收不知道怎么像Windows一样指定接收字节数。
所以现在的想法是,被动的全部接收,然后存在一个大的缓冲区里,开个线程处理读取缓冲区,处理。

但是对java的字节处理也不懂。所以求一个byte字节的先进先出解决算法。谢谢

============解决方案1============


有个ByteArrayOutputStream可能可以用,不断把byte[]通过write写入缓冲区,最后调用toByteArray获取全部byte[]。
缺点是不能取出指定的字节数。
不过我觉得自己写一个也不麻烦,没有几行代码。

============解决方案2============


求个byte数据处理方案,谢谢