代码之家  ›  专栏  ›  技术社区  ›  Srikar

凯泰代码编写

  •  -1
  • Srikar  · 技术社区  · 7 年前

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

    提前谢谢。

    2 回复  |  直到 7 年前
        1
  •  2
  •   koczkatamas    7 年前

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

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

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

    AnExampleClass output = AnExampleClass.fromFile("an_example.data");
    // ... manipulate output ...
    

    或者可以从字节数组(字节[])解析结构:

    AnExampleClass output = new AnExampleClass(new KaitaiStream(byteArray));
    // ... manipulate output ...
    

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

    您可以阅读 generic documentation 如何在此处使用API,您可以找到 Java-specific documentation here .

        2
  •  0
  •   Lele    2 年前

    koczkatamas的答案已经过时了。 现在有了具体的实现。

    这个片段应该是

    AnExampleClass output = new AnExampleClass(new ByteBufferKaitaiStream(byteArray));
    

    看到这个了吗 issue 有关更多详细信息