Android: не может прочитать данные плоских буферов из файла - PullRequest
0 голосов
/ 22 ноября 2018

Я только начал использовать flatbuffers в своем проекте.Я пишу простое демо-приложение.Проект github - здесь .Эта демонстрация преобразует предварительно упакованный json в flatbuffers и сохраняет его в файле, а также печатает временные затраты, читая из JSON и считывая из файла flatbuffers.

Кажется, что успешно сохранен flatbuffer в файл, я вижуфайл, plugin , в файле dir интервала приложения, и его размер не равен нулю, что составляет около 280 КБ, если исходный JSON составляет около 500 КБ.Но мне не удалось прочитать данные из flatbuffer.

Чтение файла plugin прошло успешно, ByteBuffer не равен нулю.Но при разборе

    Plugins plugins = Plugins.getRootAsPlugins(byteBuffer);
    int length = plugins.pluginLength();

я обнаружил, что длина равна нулю.Так что есть некоторые проблемы при разборе.Как прочитать его из файла flatbuffers?

1 Ответ

0 голосов
/ 22 ноября 2018

Вы делаете FileOutputStream.write на базовом ByteBuffer, который вы получили от FlatBuffers через FlatBufferBuilder.dataBuffer.В этом буфере хранятся данные FlatBuffer, но он не обязательно должен начинаться с 0, вам нужно писать с ByteBuffer.position и далее.

См. Также https://google.github.io/flatbuffers/flatbuffers_guide_tutorial.html (выберите Java).

...