Поделиться через


Понятие объекта CArchive

Объект CArchive предоставляет механизм буферизации с безопасностью типа для записи или чтения сериализуемых объектов в объект или из нее CFile . CFile Обычно объект представляет файл диска, однако он также может быть файлом памяти (CSharedFileобъектом), возможно, представляющим буфер обмена.

Заданный CArchive объект либо сохраняет (записывает, сериализует) данные или загружает (считывает, десериализирует) данные, но никогда не оба. Жизнь CArchive объекта ограничена одним проходом через запись объектов в файл или чтение объектов из файла. Таким образом, для сериализации данных в файл требуется два последовательно созданных CArchive объекта, а затем десериализировать их обратно из файла.

Когда архив сохраняет объекты в файл, архив присоединяет CRuntimeClass имя к объектам. Затем, когда другой архив загружает объекты из файла в память, CObjectпроизводные объекты динамически восстанавливаются на CRuntimeClass основе объектов. На данный объект можно ссылаться несколько раз, так как он записывается в файл с помощью архива. Однако архив загрузки восстанавливает объект только один раз. Сведения о том, как архив присоединяет CRuntimeClass информацию к объектам и восстанавливает объекты, учитывая возможные несколько ссылок, описаны в Техническом примечание 2.

Так как данные сериализуются в архив, архив накапливает данные, пока его буфер не будет заполнен. Затем архив записывает буфер в объект, CFile на который указывает CArchive объект. Аналогично при чтении данных из архива он считывает данные из файла в его буфер, а затем из буфера в десериализированный объект. Это буферизация уменьшает количество физических операций чтения жесткого диска, что повышает производительность приложения.

См. также

Сериализация. Сериализация объекта