0

我正在使用此函数将 bytearray 转换为 int。

public static int byteArrayToInt(byte[] b) {
    ByteBuffer bb = ByteBuffer.wrap(b);
    bb.order(ByteOrder.LITTLE_ENDIAN);
    return bb.getInt();
}

不幸的是,我在 return 语句中得到了 java.nio.BufferUnderflowException。顺便说一句,我多次调用这个函数。我读到当读取的字节数超过缓冲区大小时会发生这种情况。但是谁能告诉我如何避免它?

有没有办法将我的原始字节数组复制到大小为 4 的新字节数组并将这个字节数组传递给函数?

更新:我在主要方法中尝试了这个:

byte[] bbTemp=new byte[4];
bbTemp = originalbyteArray;

并将 bbTemp 传递给上述函数,但它不起作用。知道为什么吗?

4

1 回答 1

3

ABufferUnderflowException 将被抛出

如果此缓冲区中剩余的字节少于四个

确保byte[]其中至少有 4 个字节,这是int.

于 2013-11-14T20:22:14.227 回答