加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么在RandomAccessFile类中没有readUnsignedInt?

发布时间:2020-12-14 16:28:29 所属栏目:Java 来源:网络整理
导读:我刚刚发现RandomAccessFile类中没有readUnsignedInt()方法.为什么?从文件读取无符号的int是否有任何解决方法? 编辑: 我想从文件中读取一个unsigned int并将其放入很长的空间. EDIT2: 不能使用readLong().它将读取8个字节,而不是4个字节.文件中的数据具
我刚刚发现RandomAccessFile类中没有readUnsignedInt()方法.为什么?从文件读取无符号的int是否有任何解决方法?

编辑:

我想从文件中读取一个unsigned int并将其放入很长的空间.

EDIT2:

不能使用readLong().它将读取8个字节,而不是4个字节.文件中的数据具有4个字节范围内的unsigned int.

EDIT3:

找到答案:http://www.petefreitag.com/item/183.cfm

Edit4:

如果数据文件是小端的呢?我们需要先交换位吗?

解决方法

我会这样做:
long l = file.readInt() & 0xFFFFFFFFL;

位操作是必要的,因为upcast将会延长一个负号.

关于字节顺序据我所知,Java中的所有I / O都是以大端的方式完成的.当然,这并不重要(字节数组,UTF-8编码等不受字节顺序的影响),但DataInput的许多方法都是.如果你的号码存储在小端,你必须自己转换.我所知道的标准Java中唯一的功能是允许通过order()方法配置ByteBuffer,然后打开NIO的门,我没有很多经验.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读