【发布时间】:2013-04-01 03:54:41
【问题描述】:
我一直遇到我想要一些结构的情况,比如说缓冲区大小为 4096,我可以
- 将字节写入
- 从中读取字节
- 将读取重置为上一次读取
- 最重要的是,当数据窗口接近字节数组的末尾时,不必处理复制内容!!! (这很像一个循环缓冲区,基本上带有环绕或其他东西)
ByteBuffer 似乎和 byte[] 一样令人心痛,因为你在这两个上写入和读取它,数组的开头开始清空。我几乎只想要一个 List 或其他东西的结构......我只想为我管理它(或者我可能必须编写自己的结构)。我认为带有标记和重置的某种 InputStream 会很好,因此我可以在读取之前进行标记,然后在缓冲区中没有足够数据的情况下重置。
这在几乎所有异步编程中都非常有用,其中数据进入并且您可能有足够的解析或可能没有足够的解析并且您填充缓冲区,尝试读取和解析并且需要重置直到您有更多数据.
【问题讨论】:
-
-
性能是并驾齐驱的,实际上通过这两种实现运行 1GByte。在我们的用例中,compact 确实以微弱优势获胜。谢谢...如果这是一个答案,我会将其标记为正确答案;)。