我尝试以下代码:
byte arr[] = ByteBuffer.allocate(2).putInt(1).array()
但是它失败并显示BufferOverflowException
1太大而不能存储在2个字节中吗?还是我的问题在别的地方?

最佳答案

1太大而不能存储在2个字节中吗?


好吧,int是... putInt总是写入4个字节。从documentation for ByteBuffer.putInt


  抛出:
  
  BufferOverflowException-如果此缓冲区中剩余的字节数少于四个


如果只想输入两个字节的整数,请改用putShort。如果您想以可变宽度编码(其中的空间取决于值)存储数据,则可能需要自己编写代码。

10-06 03:01