Я создаю настольное приложение Java, которое должно хранить (что может стать) достаточно большими объемами данных. Я изначально придумал свой собственный формат:Каковы наилучшие способы хранения этих данных?
id;name;value,value,value...
id;name;value,value,value...
Хранить как обычный текст и читать/писать произвольно. Мои первоначальные мысли заключались в использовании RandomAccessFile; однако я столкнулся с проблемой перезаписи данных при вставке в произвольные позиции.
Использование метода смещения существующих данных, их временного хранения, восстановления и т. Д., Кажется плохим решением, особенно потому, что я намерен читать/писать довольно часто, поэтому он станет дорогим. Я читал, что это ограничение основной ОС, а не самой Java.
Что было бы лучшим способом аккуратно хранить такие данные для частого доступа и записи? Использование SQLite перешло мне в голову. Я также думал о том, что возможно создать один файл для каждого id/name, так как значения данных будут добавляться только к концу для каждого, поэтому ничто не будет перезаписано.
Это то, что базы данных были сделаны для. Пытаться обработать чтение/запись файлов будет очень медленным, и вы получите огромные удары производительности, если вам нужно искать файл. Если вы храните их в базе данных, вы можете получить доступ по id/name и не беспокоиться о доступе к файлу. – jzworkman
Определите «довольно часто». Не зная больше о данных (это реляционный? Плоский? Только и всегда ключ/значение (ы)? Сколько данных? Как вам нужно искать? И т. Д.), Трудно дать содержательный совет. На данный момент больше похоже на БД ключа/значения больше, чем файлов (ов). –