Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将小端文件转换为大端文件

将小端文件转换为大端文件
EN

Stack Overflow用户
提问于 2010-08-09 08:30:49
回答 6查看 10.4K关注 0票数 10

如何将小端二进制文件转换为大端二进制文件?我有一个用C写的二进制文件,我正在用DataInputStream读取这个用Java写的文件,它读的是大端格式。我也看过ByteBuffer类,但不知道如何使用它来得到我想要的结果。请帮帮忙。

非常感谢

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-08-09 10:25:38

在谷歌了这么多之后,我发现了一个包含SwappedDataInputStream类的apache Jar文件。org.apache.commons.io.input.SwappedDataInputStream.这个类让我的结果更准确。有关该类的完整详细信息,请参阅。

http://commons.apache.org/io/api-1.4/org/apache/commons/io/input/SwappedDataInputStream.html

票数 0
EN

Stack Overflow用户

发布于 2010-08-09 09:28:33

打开NIO FileChannel:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FileInputStream fs = new FileInputStream("myfile.bin");
FileChannel fc = fs.getChannel();

设置ByteBuffer字节顺序(由get|putInt(),get|putLong(),get|putShort(),get|putDouble()使用)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ByteBuffer buf = ByteBuffer.allocate(0x10000);
buf.order(ByteOrder.LITTLE_ENDIAN); // or ByteOrder.BIG_ENDIAN

从FileChannel读取到ByteBuffer

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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();

要正确处理输入的字节顺序,您需要确切地知道文件中存储了什么内容以及存储顺序(所谓的协议或格式)。

票数 14
EN

Stack Overflow用户

发布于 2010-08-09 08:42:11

您可以从Apache Commons I/O使用EndianUtils

它有像long readSwappedLong(InputStream input)这样的static方法,可以为您完成所有的交换操作。它还具有使用byte[]作为输入的重载,以及write对应物(到OutputStreambyte[])。它还有一些非I/O方法,比如可以转换纯int swapInteger(int value)原语的Java方法。

该包还包含许多有用的实用程序类,如FilenameUtilsIOUtils等。

另请参阅

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

https://stackoverflow.com/questions/3438415

复制
相关文章
[2013.11.13][cpp]检测机器大端或者小端
今天在csdn上看到的 自己改进了一下发出来 小端输出1 大端输出0 union { int i; char c[4]; } test; test.i = 1; cout << int(test.c[0]) << endl;
ApacheCN_飞龙
2019/02/15
6440
C# 大端小端转换
例如收到的数据是 byte 数组,现在知道数据是大端数据,需要把大端转小端,首先需要把数据复制出来。
林德熙
2022/08/04
1.2K0
大端存储模式和小端存储模式_vs2013大端小端如何设置
数据的低位放在低地址空间,数据的高位放在高地址空间 简记:小端就是低位对应低地址,高位对应高地址
全栈程序员站长
2022/11/01
7480
C# 大端小端转换
例如收到的数据是 byte 数组,现在知道数据是大端数据,需要把大端转小端,首先需要把数据复制出来。
林德熙
2018/09/19
2.4K0
C# 大端小端转换
大端模式和小端模式
一般在计算机中数据指针取到的都是该数据存储的起始位置的地址。比如 int a;它在32位下占据4字节。现在有一个int *p = &a;那么将会取到该数据在内存中存放的起始地址。
zy010101
2019/05/25
1.8K0
判断处理器是大端还是小端_网络字节序是大端还是小端
最近用杰理AC6966B调试博通的BK9527 U段发射芯片,一直没调通,经过测试IIC通讯是通,硬件还是好的,但是怎么都调不到与接收端成功连接。
全栈程序员站长
2022/09/27
6370
使用Python将SVG文件转换为PNG文件
SVG(Scalable Vector Graphics)是一种基于XML的矢量图像格式,它可以在不失真的情况下无限放大。然而,不是所有的设备和应用都支持SVG格式,而PNG(Portable Network Graphics)格式在互联网上得到了广泛的支持,它支持透明度并且无损压缩。因此,有时我们需要将SVG文件转换为PNG文件,以便在更多的环境中使用。
运维开发王义杰
2023/08/10
1.8K0
使用Python将SVG文件转换为PNG文件
将.m文件转换为.exe可执行文件
第二步:在MATLAB下使用:mcc -m 文件名.m ,将 .m 文件编译成 .exe 文件。
AIHGF
2019/02/18
2.6K0
对于思考小端和大端字节顺序
最近,该公司希望改变核心处理器,由小端处理器ARM为大端处理器POWERPC。bootloader以及kernel移植的工作对我来说,这是一个非常具有挑战性的工作。我很兴奋。
全栈程序员站长
2022/07/06
5450
如何将Pandas数据转换为Excel文件
将数据导出到Excel文件通常是任何用户阅读和解释一组数据的最优先和最方便的方式。通过使用Pandas库,可以用Python代码将你的网络搜刮或其他收集的数据导出到Excel文件中,而且步骤非常简单。
玖柒的小窝
2021/11/01
7.6K0
JavaScript SheetJS将 Html 表转换为 Excel 文件
在本教程中,我们可以在客户端从我们的 HTML 表数据创建一个 excel 文件。即使用javascript将HTML 表导出到Excel (.xlsx)。
全栈程序员站长
2022/09/09
5.4K0
将markdown文件转换为幻灯片(slides)
最近可能会有这个需求,之前记得王树义老师的公众号和简书分享过文章如何用 Markdown 做幻灯?。但自己在win10系统的电脑尝试时一直遇到编码报错,暂时还没找到解决办法。所以搜索其他有类似功能的软件。找到一款,在这里记录。
用户7010445
2020/03/03
1.1K0
关于byte[]字节传输的大端和小端小议
当前的存储器,多以byte为访问的最小单元,当一个逻辑上的地址必须分割为物理上的若干单元时就存在了先放谁后放谁的问题,于是端(endian)的问题应运而生了,对于不同的存储方法,就有大端(big-endian)和小端(little- endian)两个描述。 字节排序按分为大端和小端,概念如下 大端(big endian):低地址存放高有效字节 小端(little endian):低字节存放地有效字节 现在主流的CPU,intel系列的是采用的little endian的格式存放数据,而motorola系列
Gxjun
2018/03/26
1.5K0
在windows下详解:大端对齐和小端对齐
计算机的内存最小单位是什么?是BYTE,是字节。 一个大于BYTE的数据类型在内存中存放的时候要有先后顺序。
黑泽君
2018/10/11
3.6K0
探索:怎样将单个vue文件转换为小程序所需的四个文件(wxml, wxss, json, js)
比如JavaScript在执行之前,会经过词法分析和语法分析两个步骤之后,得到一个抽象语法树。
极乐君
2019/09/08
5K0
将Python脚本转换为可执行文件
当 Python 脚本编写完成后,每次运行时,都要打开命令行输入命令进行运行,或者打开 IDE 编辑器(如 PyCharm )进行运行。总有些麻烦,其实可以将脚本转换为可执行文件,每次执行时,双击可执行文件即可运行。
wangmcn
2022/07/26
1.3K0
将Python脚本转换为可执行文件
xBIM 基础06 将STEP物理文件转换为XML
  STEP,它是Standard for the Exchange of Product model data的缩写。 产品数据交换标准STEP (Product data exchange standard STEP) 指国际标准化组织(ISO)制定的系列标准ISO 10303 《产品数据的表达与交换》。这个标准的主要目的是解决制造业中计算机环境下的设计和制造(CAD/CAM)的数据交换和企业数据共享的问题。中国陆续将其制定为同名国家标准,标准号为GB/T 16656。
张传宁IT讲堂
2019/09/17
1.6K0
xBIM 基础06 将STEP物理文件转换为XML
WPF 将 docx 的 Word 文件转换为 FlowDocument 显示
在 Office 文档解析 文档格式和协议 咱可以了解到 Word 文档只是一个压缩文件里面的文件使用 xml 表示
林德熙
2020/08/07
1.6K0
将tensor转换为图像_tensor转int
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/07
11.4K0
点击加载更多

相似问题

将大端转换为小端

13

Java -将大端转换为小端

11

( Python)将大端转换为小端

413

将QByteArray从大端转换为小端

10

将大端结构转换为小端结构

29
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文