다음을 통해 공유


CArchive 개체란 무엇인가?

CArchive 개체에서 CFile 개체로 직렬화 가능한 개체를 안전한 형식으로 읽거나 쓰기 위한 버퍼링 메커니즘을 제공합니다. 일반적으로 개체는 CFile 디스크 파일을 나타내며, 클립보드를 나타내는 메모리 파일(CSharedFile 개체)일 수도 있습니다.

지정된 CArchive 개체는 데이터를 저장(쓰기, 직렬화)하거나 데이터를 로드(읽기, 역직렬화)하지만 둘 다 저장하지는 않습니다. 개체의 수명은 파일에 개체를 CArchive 쓰거나 파일에서 개체를 읽는 한 번의 통과로 제한됩니다. 따라서 연속적으로 생성된 CArchive 두 개체는 데이터를 파일로 직렬화한 다음 파일에서 다시 역직렬화해야 합니다.

아카이브가 개체를 파일에 저장하면 아카이브는 개체에 CRuntimeClass 이름을 붙입니다. 그리고 나서 다른 아카이브가 파일에서 메모리 CObject로 개체를 로드할 때, 파생된 개체는 개체의 CRuntimeClass에 따라 동적으로 재구성됩니다. 지정된 개체는 저장 아카이브가 파일에 기록하면서 두 번 이상 참조될 수 있습니다. 그러나 로드 아카이브는 개체를 한 번만 다시 구성합니다. 보관소가 개체에 정보를 첨부하고 CRuntimeClass, 여러 참조 가능성을 고려하여 개체를 재구성하는 방법에 대한 세부 정보는 Technical Note 2에 설명되어 있습니다.

데이터가 아카이브로 직렬화되는 동안, 버퍼가 가득 찰 때까지 아카이브가 데이터를 지속적으로 누적합니다. 그런 다음 보관 파일은 버퍼를 CFile 개체가 가리키는 CArchive 개체에 씁니다. 마찬가지로, 데이터를 아카이브에서 읽을 때 파일에서 버퍼로 데이터를 읽은 다음 버퍼에서 역직렬화된 객체로 데이터를 전달합니다. 이 버퍼링은 하드 디스크를 물리적으로 읽는 횟수를 줄여 애플리케이션의 성능을 향상시킵니다.

참고하십시오

Serialization: 개체를 직렬화하기