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