gpt4 book ai didi

java - RandomAccessFile 字节顺序问题

转载 作者:行者123 更新时间:2023-11-30 06:13:22 29 4
gpt4 key购买 nike

我必须从字节、整数和长数据大小的二进制文件中读取数据。我用 RandomAccessFile 的方法 readIntreadLongreadByte 读取它。问题是系统的字节序(Windows 8.1) 和文件的字节顺序不同。例如这个号码 enter image description here文件中实际上是数字 2,但它从系统中读取为 33554432

如何解决这个问题并能够使用 RandomAccessFile 的方法读取数据 block ?

最佳答案

the problem is that the endianness of the system ... and the endianness of the file are different.

没有。他们是一样的。看数据。最低有效字节在开头。那就是little-endian,也就是Intel的endianness。 (不是 'Windows endianness',除了 w.r.t. 特定平台外,AFAIK 不存在)。

问题是文件和系统的字节顺序是小端,但是 RandomAccessFile 是大端。

在 Java 中解决这个问题的方法是通过 NIO 和 ByteBuffer,使用 native 字节顺序而不是默认字节顺序。

关于java - RandomAccessFile 字节顺序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32006549/

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