如何将小端二进制文件转换为大端二进制文件。我有一个用 C 编写的二进制文件,我正在使用 Java 中的 DataInputStream 读取这个文件,该文件以大端格式读取。我还查看了 ByteBuffer 类,但不知道如何使用它来获得我想要的结果。请帮忙。
多谢
打开 NIO FileChannel:
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();
为了正确处理输入的字节顺序,您需要确切地知道文件中存储的内容以及存储的顺序(所谓的协议或格式)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)