首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免BufferUnderflowException

如何避免BufferUnderflowException
EN

Stack Overflow用户
提问于 2013-11-14 20:16:29
回答 1查看 3.7K关注 0票数 0

我使用这个函数将字节数组转换为int。

代码语言:javascript
复制
public static int byteArrayToInt(byte[] b) {
    ByteBuffer bb = ByteBuffer.wrap(b);
    bb.order(ByteOrder.LITTLE_ENDIAN);
    return bb.getInt();
}

不幸的是,我在返回语句中得到了java.nio.BufferUnderflowException。顺便说一下,我给这个函数打了很多次电话。我读到,当读取的字节多于缓冲区大小时,就会发生这种情况。但有人能告诉我怎么避免吗?

是否有方法将原始字节数组复制到大小为4的新字节数组,并将此字节数组传递给函数?

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

代码语言:javascript
复制
byte[] bbTemp=new byte[4];
bbTemp = originalbyteArray;

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

EN

回答 1

Stack Overflow用户

发布于 2013-11-14 20:22:14

A BufferUnderflowException 将被抛出

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

确保byte[]中至少有4个字节,这是一个int的大小。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19987503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档