Короче говоря - если вам нужна только сериализация, что означает, что вы будете читать и писать из потока и в поток, тогда вы можете использовать здесь легкую задачу и выдавать ваш член scructs за членом или использовать любую имеющуюся библиотеку сериализации.
Если нет, и вам потребуется прямой доступ к вашим данным внутри файла, тогда ... вы будете использовать свои требования, и онис некоторым навыком расскажет вам, какой будет структура вашего файла.
И да, к широкой теме, чтобы остановиться здесь.Например,
Мне нужна база данных миниатюр для моего программного обеспечения.У каждого эскиза есть временная метка, и я знаю, что они будут разного размера.Требования:
- последовательная запись (большие пальцы будут добавлены в конец базы данных)
- большие пальцы будут добавлены в порядке возрастания
- прямое чтение (заданное время, получить миниатюру в o (1)
- без более поздней модификации базы данных
- миниатюры будут с интервалом в 15 секунд
Да, требования здесь просты,но они стоят сами за себя.
Я создал два файла, один с индексами, а другой с изображениями.
Хранение: добавить файл данных с изображением, добавить индексный файл с индексом изображения в данныхфайл.Чтение: найдите индекс в файле, используя простое индексирование (индекс (timestamp-timestamp_start)/15
).Используйте этот индекс для извлечения данных изображения.