当前位置: 首页 > 知识库问答 >
问题:

Java ByteArray文件解析

潘彦
2023-03-14

我有一个包含java字节数组的文件。

字节公司

byte MyByteArray[] = new byte[]
{
(byte) 0x4D,(byte) 0x5A,(byte) 0x50,(byte) 0x00,(byte) 0x02,(byte) 0x00,(byte) 0x00,
(byte) 0x00,(byte) 0x04,(byte) 0x00,(byte) 0x0F,(byte) 0x00,(byte) 0xFF,(byte) 0xFF,
(byte) 0x00,(byte) 0x00,(byte) 0xB8,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,
(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x40,(byte) 0x00,(byte) 0x1A,(byte) 0x00,
(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,
(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,
(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,
(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,
(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x01,(byte) 0x00,
(byte) 0x00,(byte) 0x00,(byte) 0x00,(byte) 0x00,
};

完整的文件(bytes.inc)有283kb,对于编译器来说太大了,不允许我插入到特定的类中。我尝试过一个字节一个字节地读取文件,然后将它从字符串转换为实际的字节,因为读取文件只会产生字符串,当我这样做并将一个字节转换回来时,它显示的是该字节的文本表示,而不是它的实际转换。我怎样才能获得产生完整ByteArray的能力而不把它包含在一个庞大的方法中呢?

共有1个答案

关昊天
2023-03-14

一种选择是将实际字节存储在文件中,并使用Files.readAllBytes(path)读取它们

Path path = Paths.get("path/to/file");
byte[] bytes = Files.readAllBytes(path);

另一种选择是将字节作为文本保存在由< code >、分隔的文件中,并使用以下代码:

FileReader file = new FileReader("bytes.txt");
Scanner scanner = new Scanner(file);
scanner.useDelimiter(",");
ByteBuffer byteBuffer = new ByteBuffer(0);
while (scanner.hasNext()) {
    byteBuffer.append(Byte.decode(scanner.next().trim()));
}
scanner.close();

字节文件将如下所示:

0x4D,0x5A,0x50,0x00,0x02
 类似资料:
  • 作为实践,我正在尝试解析一些作为shell命令输出的标准文本。 我想使用Perl6语法,我想在单独的令牌或正则表达式中捕获每个字段。因此,我做了以下语法: 我的想法是,正则表达式找到一个关键字,然后开始收集所有数据,直到下一个关键字。然而,每次我都会得到“池”:- 我不知道当它找到一个关键字时,如何让它停止吃掉字符,然后将其视为另一个关键字。

  • 这是我第一次使用YAML文件,所以我首先想到的是找到任何可以帮助我解析文件的库。 我找到了两个库,YamlBean和snakeyaml。我不确定我要用哪一个。 下面是我试图解析的文件的一个示例: 该文件将动态更改,所以我不知道该文件将包含多少用户或组。 有人能帮我开始吗?最好的图书馆是什么?YamlBean还是Snakeyaml? 我想,我需要将这些信息保存在一个可以轻松重复的东西中。

  • 详细内容请看这里

  • 我正在使用snmp4j开发snmp管理器。我需要读取MIB文本文件并生成相应的XML文件。是否有任何SNMP4j库可用于解析Mib文本文件并获取每个对象的数据。如果snmp4j不能解决我的问题,是否有其他类似的开源可用? 谢谢

  • 问题内容: 我想在Java中解析JSON文件,并从下面提到的文件中获取以下值: 从每个元素,我想获得距离和持续时间的值字段。我该怎么做呢? 问题答案: 使用json.org参考实现(org.json主页,在此处下载)。代码有点混乱,但是我认为它可以满足您的要求。通过不创建所有这些对象而是直接访问它们,可以采用很多快捷方式。我这样做的原因是试图使其更容易跟踪发生的事情。

  • 是否有开源库可以使用java解析junit xml,并获得执行的testsuite名称、testsuite对应的TestCase、失败次数和成功次数等信息?我刚刚看到了junit风格的报表工具,有没有开源库可以在Java中获取这些信息。