java – 当缓冲区未满时,为什么bytebuffer会给出缓冲区溢出异常

我不确定为什么以下示例给出了缓冲区溢出异常.希望有人可以解释原因,以及我如何正确地做到这一点.

这很简单:

ByteBuffer bf = ByteBuffer.allocate(4);
bf.order(ByteOrder.BIG_ENDIAN);
bf.putInt(8);
bf.putInt(7); // Throws exception

目标:[0,0,8,7]

提前致谢!

解决方法:

int是4个字节长,因此您应该将4乘以您需要存储在ByteBuffer中的int数.

上一篇:java – 如何从ByteBuffer获取used byte []


下一篇:Java – 将16位带符号的pcm音频数据数组转换为双数组