gpt4 book ai didi

java - 当缓冲区分配 14 个字节时执行 getLong 时出现 BufferUnderflowException 异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:50 24 4
gpt4 key购买 nike

非常小的一段代码,但我对这种行为感到非常惊讶。我有一个字节数组中的 14 字节 key 。我将这个字节数组放入 ByteBuffer,然后执行 getLong 给我一个 BufferUnderflowException。不明白为什么?

    byte key[] = new byte[14];

key[13] = (byte) 3;
key[12] = (byte) 21;
key[11] = (byte) 1;
key[10] = (byte) 15;
key[9] = (byte) 66;
key[8] = (byte) 64;

key[7] = (byte) 3;
key[6] = (byte) 65;
key[5] = (byte) -10;
key[4] = (byte) -65;
key[3] = (byte) 3;
key[2] = (byte) 65;
key[1] = (byte) -10;
key[0] = (byte) -65;


ByteBuffer b = ByteBuffer.allocate(14);
b.put(key);
long l = b.getLong();

最佳答案

ByteBuffer b = ByteBuffer.allocate(14);
b.put(key, 0, key.length);
long l = b.getLong(0);

取long时必须指定索引

关于java - 当缓冲区分配 14 个字节时执行 getLong 时出现 BufferUnderflowException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20723117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com