Это сложная проблема, потому что она очень общая. Стратегия optima очень сильно зависит от характера данных, их структуры и того, что вы планируете с ними делать.
Нет ничего принципиального в том, что вы просто читаете по одному фрагменту за раз и собираете его в нужную структуру в памяти по ходу работы. Конечно, много маленьких операций чтения может быть медленным, и структура чтения будет скрыта чистой массой кода.
Определение объекта с чистыми данными (т. Е. struct
в c или struct
или class
без методов в c ++) для каждого связного бита данных на диске и всасывание их за один раз выполняется быстрее и легче понять, но вам придется иметь дело с согласованием упаковки в памяти и порядком байтов (я знаю, вы сказали, что читаете на той же машине, на которой писал, но все же). Однако это не очень "объектно-ориентированный".
Или вы можете определить группу классов, которые знают, как высасывать их содержимое с диска. Хороший и объектно-ориентированный, и хотя код может затенить логику чтения, он делает это небольшими порциями, а документация объекта занимает большую часть провала.
Возможны бесконечные вариации.