flatBuffers 构建器在 DOM 中执行 read/write 或在文件中执行 I/O

flatBuffers builder does read/write in DOM or does I/O on file

我对 flatBuffers 文件的编写方式有些怀疑。

我们创建一个构建器对象,并使用模式生成接口中的 api 来读取/写入 flatBuffers 中的字段。

  1. 我们是直接在文件中做这些操作吗? (即多个 I/O 操作?)或者我们在从文件创建的临时 DOM 中执行此操作。

  2. 如果我们在 DOM 中执行此操作,那么请说明是否有类似 SAX 的实现方式,因为我的数据文件将会很大。

  3. 如果我们直接在文件中执行此操作,请说明如何向该数据文件添加外部压缩/解压缩。

一个示例来展示我们实际使用 flatBuffers 构建器 I/O 将非常有帮助。

  1. 都没有。这些操作是在内存中的字节数组上进行的。
  2. DOM 和 SAX 之类的术语并不适用。它有点像 SAX,因为它允许您在不构造对象的情况下读取数据,但它也像 DOM,因为您读取它的方式看起来像读取对象树(即使那棵树只存在于字节数组中)。
  3. 在记忆中。如果您愿意,可以在写入文件时选择压缩字节数组,但这不是 FlatBuffer 功能的一部分(它不执行任何 I/O 或压缩本身)。