序列化到/从文件中的数据

持久性本意是对象应能够编写其当前状态,由其成员变量的值,对永久存储。之后,对象可以读取或 “反序列化重新创建,”从永久存储区中对象的状态。关键点这是对象可以读取和编写自己的状态负责。因此,才的类可以不可变的,则它必须实现基本序列化操作。

框架提供保存提供默认实现文档到磁盘文件以响应保存,并且充当命令的保存在 " 文件 " 菜单和加载从磁盘文档以响应打开命令。很少的工作,可以实现文件的能力编写并在文件读取其数据。您必须执行的里程碑是重写在您的功能文档类的 序列化 成员。

MFC 应用程序向导在文档类将它为您创建 CDocument 成员函数 Serialize 的骨骼重写。在实现了应用程序的成员变量之后,可以将数据发送到 “archive 对象”连接到文件中的代码可以填充 Serialize 重写。CArchive 对象类似于从 C++ iostream 库的 cincout 输入/输出对象。但是, CArchive 读写二进制格式,而非格式化文本。

您想进一步了解什么?

在序列化文档的效果

框架自动响应 " 文件 " 菜单中打开,保存并保存,当命令通过调用文档的 Serialize 成员函数,则实现。ID_FILE_OPEN 命令,例如,对应用程序对象的一个处理程序函数。在此过程中,将会看到并响应 " 打开文件 " 对话框,并且框架获取用户选择的文件名。结构创建加载数据的一个 CArchive 对象设置为文档并通过存档到 Serialize。框架已打开该文件。在文件的 Serialize 成员函数的代码通过存档写入数据,重新生成数据对象根据需要。有关序列化的更多信息,请参见中的文章 序列化

在序列化数据的效果

通常,类类型的数据应可以序列化自身。也就是说,当您传递到存档对象时,对象应如何将写入到存档和读取自身从存档。MFC 提供使得类支持可序列化的。如果设计类定义数据类型,并且打算序列化该类型的数据,用于序列化请模型。

请参见

参考

使用文档