我试图将一个字节数组转换为long,但接收BufferUnderflowException
ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
byte[] arg1 = new byte[] {0x04, (byte)0xB0};
buffer.put(arg1, 0, arg1.length);
buffer.flip();
long val = buffer.getLong();
Run Code Online (Sandbox Code Playgroud)
在调试模式下,我查看了缓冲区内部.它有一个内部字节数组,它用"0"填充未指定的字节.那为什么会发生异常?我该如何解决?
的规范getLong()明确表示,它抛出BufferUnderflowException,如果there are fewer than eight bytes remaining in this buffer.您的缓冲区只有两个字节.
| 归档时间: |
|
| 查看次数: |
338 次 |
| 最近记录: |