Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 凯泰代码编写_Java_Parsing_Hexdump_Kaitai Struct - Fatal编程技术网

Java 凯泰代码编写

Java 凯泰代码编写,java,parsing,hexdump,kaitai-struct,Java,Parsing,Hexdump,Kaitai Struct,我最近开始使用kaitai struct处理任意二进制格式。我已经为我的数据创建了.ksy文件,并将其解析为目标语言java。现在,有人能告诉我如何传递包含数据的输入文件,以及如何获取解析为输出的数据,以便我可以编写代码来根据自己的需求处理这些数据吗?有关于如何根据我们获得的数据编写代码的教程吗 提前感谢。首先,您必须使用Kaitai结构编译器或WebIDE从.ksy文件生成Java类。您可以在中找到有关如何使用编译器的详细信息 如果使用WebIDE,只需右键单击.ksy文件并选择Generat

我最近开始使用kaitai struct处理任意二进制格式。我已经为我的数据创建了.ksy文件,并将其解析为目标语言java。现在,有人能告诉我如何传递包含数据的输入文件,以及如何获取解析为输出的数据,以便我可以编写代码来根据自己的需求处理这些数据吗?有关于如何根据我们获得的数据编写代码的教程吗


提前感谢。

首先,您必须使用Kaitai结构编译器或WebIDE从.ksy文件生成Java类。您可以在中找到有关如何使用编译器的详细信息

如果使用WebIDE,只需右键单击.ksy文件并选择
Generate parser>Java
菜单项即可

生成Java代码后,可以直接从本地文件解析结构,如下所示:

AnExampleClass output = AnExampleClass.fromFile("an_example.data");
// ... manipulate output ...
或者,您可以从字节数组(字节[])解析结构:

请注意,不支持也可能不支持从不可查找的流(即FileInputStream、BufferedInputStream等)进行解析,因为KS中的许多解析功能都依赖于seek支持


您可以在这里阅读如何使用API,您可以找到。

您可以给我一个类似代码片段的示例吗。我已经阅读了文档,但无法准确理解它所说的内容。一个小片段可以帮助我很多,提前谢谢我不明白你在哪里卡住了。例如,您是否尝试过使用我刚才在您回复的答案中发布的代码片段?如果你试过了,你会被困在哪里?什么是错误信息,等等?是的,它工作了谢谢,我只是在某个时候感到困惑,所以我不明白我在做什么。但在阅读了一段时间的文档后,我得到了它的git。
AnExampleClass output = new AnExampleClass(new KaitaiStream(byteArray));
// ... manipulate output ...