我刚开始在我的项目中使用平面缓冲。我编写了一个简单的演示应用程序。github项目是这里。此演示将预打包的json转换为平面缓冲区,并保存该文件,并通过读取JSON和从平面缓冲区文件打印时间成本。
它似乎成功地将平面缓冲区保存到文件中,我可以在应用程序间隔文件dir中看到文件plugin,它的大小不是零,如果原始的JSON大约是500 k,这个值大约是280 k。但我没能从平面缓冲区读取数据。
读取插件文件是成功的,ByteBuffer是非零.但是当解析它时
Plugins plugins = Plugins.getRootAsPlugins(byteBuffer);
int length = plugins.pluginLength();我发现长度是零。因此,在解析它时存在一些问题。如何从平面缓冲文件中读取?
发布于 2018-11-22 15:34:58
您可以通过FileOutputStream.write对从FlatBuffers获得的底层ByteBuffer进行FlatBufferBuilder.dataBuffer操作。这个缓冲区存储FlatBuffer数据,但它不一定从0开始,您需要从ByteBuffer.position开始编写。
请参见tutorial.html (选择Java)。
https://stackoverflow.com/questions/53428650
复制相似问题