Я использую сериализатор Java Protobuf для записи большого количества (маленьких) сообщений в двоичный файл.Я использую функцию writeDelimitedTo () для написания сообщений с префиксом длины.К сожалению, одно из сообщений (прямо в середине файла) было написано только частично.Это портит весь файл, так как анализатор не может восстановить начало и конец сообщений, следующих за этим неработающим сообщением.Есть ли способ решить эту проблему?
Чтобы избежать повторного появления этой проблемы, я готов уйти из Protobuf.Есть ли более надежная альтернатива, подходящая для такого рода задач (запись множества сообщений в один файл)?Я ищу что-то хорошо поддерживаемое в Java, с такой же скоростью десериализации, как у Protobuf. * 1003 *
Спасибо!
РЕДАКТИРОВАТЬ: Я получаю много (миллионов) из следующихошибки (в кажущемся случайном порядке) при чтении сообщений после испорченного сообщения:
com.google.protobuf.InvalidProtocolBufferException: тег конечной группы сообщения протокола не соответствует ожидаемому тегу.
com.google.protobuf.InvalidProtocolBufferException: при синтаксическом анализе сообщения протокола ввод неожиданно завершился в середине поля.Это может означать, что входные данные были усечены или что во встроенном сообщении неправильно указана его длина.
Я не обязательно хочу восстанавливать поврежденное сообщение.