У меня есть двоичный файл в следующем формате:
[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 байтов, которые содержат идентификатор и длину данных в записи .
этот файл очень большой и может содержать 3 миллиона записей.
Я хочу открыть этот файл приложением и позволить пользователю просматривать и редактировать записи. (Вставить / обновить / удалить записи)
мой первоначальный план - создать и проиндексировать файл из исходного файла и для каждой записи сохранить адрес следующей и предыдущей записи, чтобы легко перемещаться вперед и назад. (своего рода связанный список, но в файле не в памяти)
есть ли библиотека (библиотека java), которая поможет мне реализовать это требование?
какие-либо рекомендации или опыт, которые вы считаете полезными?
----------------- РЕДАКТИРОВАТЬ ----------------------------- -----------------
Спасибо за руководства и предложения,
дополнительная информация:
исходный файл и его формат не зависят от меня (это сторонний файл), и я не могу изменить формат файла. но я должен это прочитать, позволить пользователю перемещаться по записям и редактировать некоторые из них (вставлять новую запись / обновлять существующую / удалять запись) и в конце сохранять ее обратно в исходный формат файла .
do u still рекомендовать базу данных вместо обычного индексного файла?
----------------- ВТОРОЕ РЕДАКТИРОВАНИЕ -------------- --------------------------------
Размер записи в режиме обновления исправлен. это означает, что обновленная (отредактированная) запись имеет ту же длину, что и исходная, если только пользователь не удалит запись и не создаст другую запись в другом формате.
Большое спасибо