Java 为什么bytebuffer在缓冲区未满时给出缓冲区溢出异常
我不确定为什么下面的示例会出现缓冲区溢出异常。希望有人能解释为什么,以及我如何能正确地做到这一点 就这么简单:Java 为什么bytebuffer在缓冲区未满时给出缓冲区溢出异常,java,bytebuffer,Java,Bytebuffer,我不确定为什么下面的示例会出现缓冲区溢出异常。希望有人能解释为什么,以及我如何能正确地做到这一点 就这么简单: ByteBuffer bf = ByteBuffer.allocate(4); bf.order(ByteOrder.BIG_ENDIAN); bf.putInt(8); bf.putInt(7); // Throws exception 目标:[0,0,8,7] 提前谢谢 美国 BufferOverflowException-如果此缓冲区中剩余的字节少于四个 您的totalNumb
ByteBuffer bf = ByteBuffer.allocate(4);
bf.order(ByteOrder.BIG_ENDIAN);
bf.putInt(8);
bf.putInt(7); // Throws exception
目标:[0,0,8,7]
提前谢谢 美国
BufferOverflowException
-如果此缓冲区中剩余的字节少于四个
您的
totalNumberOfBytes
不能大到可以容纳2个整数,即小于8。一个整数的长度为4字节,因此您应该将4乘以需要存储在ByteBuffer中的整数。字节总数是多少?哈哈,对不起。忘记插入数字而不是变量。4hmm,只是我现在得到的一个结果。。。Putin可能是Int32?:P@Ikky与Java中的C相反,int有一个固定大小的32位字节,我问了一分钟后想了想:/Thank如果它对您有帮助,请接受我的回答:)谢谢