我正在编写一些代码来处理二进制数据流。它以字节数组表示的块的形式接收。结合起来,字节数组表示消息的顺序流,每个消息都以相同的常量终止符值(在我的例子中为 0xff)结束。但是,终止符值可以出现在任何给定数据块中的任何点。单个块可以包含消息的一部分、多条消息以及介于两者之间的任何内容。
以下是由此处理的数据的一小部分示例:
[0x00, 0x0a, 0xff, 0x01]
[0x01, 0x01]
[0xff, 0x01, 0xff]
此数据应转换为以下消息:
[0x00, 0x0a, 0xff]
[0x01, 0x01, 0x01, 0xff]
[0x01, 0xff]
我写了一个小班来处理这个问题。它有一种方法以字节数组格式添加一些数据,然后将其放入缓冲区数组中。当遇到终止符时,字节数组被清空,完整的消息被放入消息队列中,可以使用 hasNext() 和 next() 方法访问(类似于迭代器)。
这个解决方案运行良好,但是当我完成它时,我意识到在一个已建立的库中可能已经有一些稳定、高性能和经过测试的代码,我可以使用它们来代替。
所以我的问题是 - 你知道有这样一个类的实用程序库吗,或者标准 Java 6 库中的某些东西已经可以做到这一点?