gpt4 book ai didi

java - 将 little Endian 文件转换为 big Endian

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:24 24 4
gpt4 key购买 nike

我怎样才能将小字节序二进制文件转换成大字节序二进制文件。我有一个用 C 编写的二进制二进制文件,我正在用 Java 使用 DataInputStream 读取这个文件,它以大端格式读取。我还查看了 ByteBuffer 类,但不知道如何使用它来获得我想要的结果。请帮忙。

非常感谢

最佳答案

打开 NIO 文件 channel :

FileInputStream fs = new FileInputStream("myfile.bin");
FileChannel fc = fs.getChannel();

设置 ByteBuffer 字节顺序(由 [get|put]Int()、[get|put]Long()、[get|put]Short()、[get|put]Double() 使用)

ByteBuffer buf = ByteBuffer.allocate(0x10000);
buf.order(ByteOrder.LITTLE_ENDIAN); // or ByteOrder.BIG_ENDIAN

从 FileChannel 读取到 ByteBuffer

fc.read(buf);
buf.flip();
// here you take data from the buffer by either of getShort(), getInt(), getLong(), getDouble(), or get(byte[], offset, len)
buf.compact();

要正确处理输入的字节顺序,您需要准确了解文件中存储的内容以及存储的顺序(所谓的协议(protocol)或格式)。

关于java - 将 little Endian 文件转换为 big Endian,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3438415/

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