3

我有一个固定长度的 ByteBuffer 并希望将一个字节(或多个字节)“取消移位”到缓冲区的开头,同时从缓冲区的末尾“弹出”字节,即非常像通过固定长度的流数据缓冲。后面弹出的字节刚刚被删除。

我对所有这些缓冲都不熟悉,并且对实现这一点的最佳方法感到困惑(性能是关键)。最好使用ByteBuffer'slice()put命令。?例如,要“取消移位”和“弹出”一个字节,可以执行以下操作:

ByteBuffer buffer = getMyBuffer();

buffer.position(0);
buffer.limit(buffer.capacity() - 1);
ByteBuffer slicedBuffer = buffer.slice();

buffer.position(0);
buffer.put(newByte);
buffer.put(slicedBuffer);

这通常是如何完成的?还是作为菜鸟我错过了一些明显的东西?谢谢。

4

0 回答 0