У меня есть двоичный файл в следующем формате:
[N bytes identifier & record length] [n1 bytes data]
[N bytes identifier & record length] [n2 bytes data]
[N bytes identifier & record length] [n3 bytes data]
, как вы видите, у меня есть записи различной длины.в каждой записи у меня фиксировано N байт, которые содержат id и длину данных в записи .
этот файл очень большой и может содержать 3 миллиона записей.
Я хочу открыть этот файл приложением и позволить пользователю просматривать и редактировать записи.(Вставить / Обновить / Удалить записи)
Мой первоначальный план состоит в том, чтобы создать и проиндексировать файл из исходного файла и для каждой записи сохранять адрес следующей и предыдущей записи, чтобы легко перемещаться вперед и назад.(какой-то связанный список, но в файле нет в памяти)
есть ли библиотека (библиотека java), чтобы помочь мне реализовать это требование?
какие-либо рекомендации или опыт, которые вы считаете полезными?
----------------- РЕДАКТИРОВАТЬ ----------------------------------------------
Спасибо за руководства и предложения,
Дополнительная информация:
Исходный файл и его формат находятся вне моего контроля (это файл стороннего производителя), и я не могу изменить формат файла.но я должен прочитать его, позволить пользователю перемещаться по записям и редактировать некоторые из них (вставить новую запись / обновить существующую запись / удалить запись) и в конце сохранить ее обратно в исходный формат файла .
Вы все еще рекомендует базу данных вместо обычного индексного файла?
----------------- ВТОРОЕ РЕДАКТИРОВАНИЕ ----------------------------------------------
размер записи в режиме обновления фиксирован.это означает, что обновленная (отредактированная) запись имеет ту же длину, что и исходная запись, если только пользователь не удалит запись и не создаст другую запись в другом формате.
Большое спасибо