gpt4 book ai didi

java - 从 ByteBuffer 读取前四个字节,然后将它们写回?

转载 作者:太空宇宙 更新时间:2023-11-04 13:10:59 25 4
gpt4 key购买 nike

我有一个名为 msg 的 ByteBuffer 对象,其预期消息长度位于前四个字节中,我读取的内容如下:

    int msgLen = msg.getInt();
LOG.debug("Message size: " + msgLen);

如果msgLen小于某个阈值,则我有部分消息并且需要缓存。在这种情况下,我想将前四个字节放回消息的开头;也就是说,将消息重新组合在一起,使其与预读相同。例如:

if (msgLen < threshold) {
msg.rewind();
msg.put(msgLen);

不幸的是,这似乎不是正确的方法。我尝试了多种翻转、放置和倒带的组合,但一定是误解了。

如何将字节按原始顺序放回写入缓冲区?

最佳答案

Andremoniy 在评论部分发布了答案。读取操作不会消耗缓冲区中的字节,因此 msg.rewind() 就足够了。由于程序中的一些其他逻辑,这在我的例子中不起作用,并且我错误地将其与缓冲区级别的问题关联起来。

关于java - 从 ByteBuffer 读取前四个字节,然后将它们写回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33959757/

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