我刚刚开始在项目中使用平面缓冲区。我编写了一个简单的演示应用程序。 github项目是here。该演示将预先打包的json转换为flatbuffers并将其保存为文件,并通过读取JSON和读取flatbuffers文件来打印时间成本。
似乎已成功将平面缓冲区保存到文件,我可以在应用程序间隔文件dir中看到文件 plugin ,并且其大小不为零,如果原始JSON大约为280k 50万。但是我无法从Flatbuffer读取数据。
读取 plugin 文件成功,但ByteBuffer为非零。但是在解析时
implementation 'com.firebaseui:firebase-ui-firestore:4.1.0'
我发现 length 为零。因此在解析时会出现一些问题。如何从flatbuffers文件读取它?
答案 0 :(得分:0)
您对通过FileOutputStream.write
从FlatBuffers获得的基础ByteBuffer
执行FlatBufferBuilder.dataBuffer
。该缓冲区存储FlatBuffer数据,但不一定从0开始,您需要从ByteBuffer.position
开始写入。
另请参见https://google.github.io/flatbuffers/flatbuffers_guide_tutorial.html(选择Java)。