当前位置: 首页 > 面试题库 >

是否有用于二进制文件解析的Java框架?

施敏达
2023-03-14
问题内容

我的问题是,我想使用在JAVA中实现的通用解析器来解析不同类型的二进制文件。也许使用解析器读取的配置文件来描述文件格式,或者创建Java类来根据某种解析规则来解析文件。

我已经在互联网上进行了很多搜索,但是在该主题上几乎找不到任何内容。

我发现的只是与编译器生成器(Jay,Cojen等)打交道的东西,但我认为我不能用它们来生成一些用于解析二进制文件的东西。但是在这个假设上我可能是错的。

有没有专门处理二进制文件轻松解析的框架,或者有人可以给我提示我如何使用解析器/编译器生成器来做到这一点?

更新 :我正在寻找可以编写类似配置文件的内容

file:
  header: FIXED("MAGIC")
  body: content(10)

content:
  value1: BYTE
  value2: LONG
  value3: STRING(10)

它会自动生成一些内容,以“ MAGIC”开头的文件进行解析,然后是内容包的十倍(内容包本身由一个字节,一个长字节和一个10字节字符串组成)。

Update2 :我找到了与我正在寻找的东西类似的“ 构造
”,但是可悲的是,这是一个Python框架。也许这可以帮助某人了解我在寻找什么。


问题答案:

给一个尝试前子



 类似资料:
  • 问题内容: 我想用二进制文字声明我的整数。Java可能吗? 问题答案: 从Java 7开始,您可以使用(或)形式将整数直接表示 为二进制数字 ,后跟一个或多个二进制数字(0或1)。例如,是整数42。与八进制和十六进制数字一样,二进制文字可能表示负数。 如果您没有Java 7,请使用以下命令: 还有其他输入整数的方法: 如十进制数字,。负十进制数,例如实际上是由一元否定运算的整数文字组成的表达式。

  • 问题内容: 有谁知道一个允许我解析.PO文件的Java库?我只想创建ID和值的映射,以便将它们加载到数据库中。 问题答案: 根据Java gettext实用程序手册, 您可以使用程序将PO文件转换为ResourceBundle类,并使用java.util.ResourceBundle或gnu.gettext.GettextResource读取它- 我认为这是最有效的方法。Gettext-commo

  • 问题内容: 可以使用此mp3SPI支持来处理mp3文件,但找不到与mp4文件类似的东西。 任何帮助,将不胜感激。 -更新 我想要做的就是获取文件的大小,就像我使用以下代码处理wave文件一样: - 回答 这是使用@mdma(IBM工具箱)提示的答案代码: - 问题答案: MP4是一种容器格式-为了能够找到内部音频的持续时间,您必须首先从容器中解析出内容。您可以使用isobox mp4parser

  • 问题内容: 是否有用于解析绑定区域文件的python库?基本上,这将有助于添加/删除区域和记录。即使有人手动修改区域文件,这也需要起作用,因此每次覆盖区域文件都不是解决方案。 问题答案: 我无法将bicop用于此类经典区域文件: 我将看看dnspython

  • 问题内容: 我有一个混合二进制数据和文本数据的文件。我想通过正则表达式解析它,但出现此错误: 我猜该消息意味着Python不想解析二进制文件。我正在打开带有标志的文件。 如何在Python中使用正则表达式解析二进制文件? 编辑: 我正在使用Python 3.2.0 问题答案: 我认为您使用Python 3。 1.以 二进制模式 打开文件很简单但是很微妙。与在文本模式下打开它的唯一区别是mode参数

  • 问题内容: 我有一个较长的无符号整数文件(每个64位,0.47GB文件),需要读取并存储在数组中。经过一番思考之后,由于Java中的所有内容都已签名(请纠正我,请纠正我),因此我长时间使用了该类型,我想不出更好的选择了。无论如何,仅需对数组进行排序,因此原始数字的精确值并不是最重要的。我们应该测量排序算法的效率,仅此而已。但是,当我实际要读取文件时(在下面的代码中),我遇到了砖墙。 它会一直持续下