我尝试以下代码:byte arr[] = ByteBuffer.allocate(2).putInt(1).array()
但是它失败并显示BufferOverflowException
。
1太大而不能存储在2个字节中吗?还是我的问题在别的地方?
最佳答案
1太大而不能存储在2个字节中吗?
好吧,int
是... putInt
总是写入4个字节。从documentation for ByteBuffer.putInt
抛出:
BufferOverflowException-如果此缓冲区中剩余的字节数少于四个
如果只想输入两个字节的整数,请改用putShort
。如果您想以可变宽度编码(其中的空间取决于值)存储数据,则可能需要自己编写代码。