Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么bytebuffer在缓冲区未满时给出缓冲区溢出异常_Java_Bytebuffer - Fatal编程技术网

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如果它对您有帮助,请接受我的回答:)谢谢