Compartir a través de


¿Qué es un objeto CArchive?

Un objeto CArchive proporciona un mecanismo de almacenamiento en búfer con seguridad de tipos para escribir o leer objetos serializables en un objeto CFile o desde este. Normalmente, el objeto CFile representa un archivo de disco; sin embargo, también puede ser un archivo de memoria (objeto CSharedFile), quizás representando el portapapeles.

Un objeto determinado CArchive almacena (escribe, serializa) datos o carga (lee, deserializa) datos, pero nunca ambos. La vida de un objeto CArchive se limita a un paso a través de la escritura de objetos en un archivo o la lectura de objetos de un archivo. Por lo tanto, se requieren dos objetos CArchive creados sucesivamente para serializar datos en un archivo y, a continuación, deserializarlos de nuevo desde el archivo.

Cuando un archivo almacena objetos en un archivo, este anexa el nombre CRuntimeClass a los objetos. A continuación, cuando otro archivo carga objetos de un archivo a la memoria, los objetos derivados de CObject se reconstruyen dinámicamente en función del valor CRuntimeClass de los objetos. El archivo de almacenamiento puede hacer referencia a un objeto determinado más de una vez, ya que se escribe en el archivo. Sin embargo, el archivo de carga reconstruirá el objeto una sola vez. Los detalles sobre cómo un archivo adjunta información de CRuntimeClass a objetos y reconstruye objetos, teniendo en cuenta varias referencias posibles, se describe en la Nota técnica 2.

A medida que los datos se serializan en un archivo, el archivo acumula los datos hasta que su búfer está lleno. A continuación, el archivo escribe su búfer en el objeto CFile al que apunta el objeto CArchive. Del mismo modo, a medida que lee datos de un archivo, se leen los datos del archivo en su búfer y, a continuación, desde el búfer hasta el objeto deserializado. Este almacenamiento en búfer reduce el número de veces que se lee físicamente un disco duro, lo que mejora el rendimiento de la aplicación.

Consulte también

Serialización: Serializar un objeto