我一直遇到我想要某种结构的情况,比如说缓冲区大小4096,我可以


将字节写入
从中读取字节
将读数重置为先前的读数
最重要的是,由于数据窗口接近字节数组的末尾,因此不必处理复制内容!!! (这很像是一个基本上带有回绕功能的循环缓冲区)


当您对ByteBuffer进行写入和读取时,ByteBuffer似乎和byte []一样令人心痛,数组的开头开始变空。我几乎只想要List的结构或其他内容。...我只希望对我所有这些都可以管理(或者我可能必须编写自己的结构)。我认为某种InputStream可以带有标记并进行重置,因此我可以在读取之前进行标记,然后在缓冲区中没有足够数据的情况下进行重置。

在几乎所有异步数据输入中,这可能非常有用,因为您可能有足够的解析能力,也可能没有足够的解析能力,因此您需要填充缓冲区,尝试读取和解析并需要重置,直到拥有更多数据为止。

最佳答案

ByteBuffer似乎完全正确,并且ByteBuffer.compact()确实是想要将剩余缓冲区移回开头时要使用的。

10-07 13:53
查看更多