gpt4 book ai didi

java - 写/读字节的数据结构

转载 作者:行者123 更新时间:2023-11-30 09:23:50 25 4
gpt4 key购买 nike

我一直遇到这样的情况,我想要一些比方说缓冲区大小为 4096 的结构,我可以

  1. 写入字节
  2. 从中读取字节
  3. 将阅读重置为之前的阅读
  4. 最重要的是,当数据窗口接近字节数组的末尾时,不必处理复制内容!!! (这很像一个循环缓冲区,基本上带有环绕之类的东西)

ByteBuffer 看起来和 byte[] 一样令人心痛,因为你在这两个方面写入和读取它,数组的开头开始变空。我几乎只想要一个 List 或其他东西的结构......我只想要它全部为我管理(或者我可能必须编写我自己的结构)。我认为某种带有标记和重置的 InputStream 会很好,这样我就可以在读取之前进行标记,然后在缓冲区中没有足够数据的情况下进行重置。

这在几乎所有数据进来的异步编程中都非常有用,你可能有足够的数据来解析,或者可能没有足够的数据来解析,然后你填充缓冲区,尝试读取和解析,然后需要重置,直到你有更多数据.

最佳答案

ByteBuffer 似乎完全适合这个,而 ByteBuffer.compact() 确实是您想要将剩余缓冲区移回开始时使用的。

关于java - 写/读字节的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15906681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com