我使用这个函数将字节数组转换为int。
public static int byteArrayToInt(byte[] b) {
ByteBuffer bb = ByteBuffer.wrap(b);
bb.order(ByteOrder.LITTLE_ENDIAN);
return bb.getInt();
}不幸的是,我在返回语句中得到了java.nio.BufferUnderflowException。顺便说一下,我给这个函数打了很多次电话。我读到,当读取的字节多于缓冲区大小时,就会发生这种情况。但有人能告诉我怎么避免吗?
是否有方法将原始字节数组复制到大小为4的新字节数组,并将此字节数组传递给函数?
更新:我在主方法中尝试了这个方法:
byte[] bbTemp=new byte[4];
bbTemp = originalbyteArray;并将bbTemp传递给上述函数,但不起作用。知道为什么吗?
发布于 2013-11-14 20:22:14
A BufferUnderflowException 将被抛出
如果在此缓冲区中剩余的字节少于4个字节
确保byte[]中至少有4个字节,这是一个int的大小。
https://stackoverflow.com/questions/19987503
复制相似问题