Visual C++网络编程经典案例详解 第4章 FTP浏览器 登录FTP服务器 FTP文件处理 CSocketFile类的使用 使用CArvhive类进行串行化 串行化操作

在CArchive类中
使用函数ReadString()和WriteString()进行CSocketFile文件的读写操作

UINT CArchive::ReadString(CString str);
void CArchive::WriteString(CString str1);

这两个函数均包含一个字符串类型的参数
str表示将读取后保存的字符串数据
str1表示将写入的字符串数据

还可以使用串行化操作的基本方法

...  //省略部分代码
m_archive<<str;  //向串行化对象m_archive写入字符串str
m_archive>>str1;  //从串行化对象m_archive读出数据到str1
m_archive->Close();  //关闭串行化对象m_archive

需要注意
在关闭串行化对象后
与其相关联的文件对象也随之被关闭
函数CArchive::Close()用于清除CArchive类创建时所指定的缓冲区
再关闭CArchive对象
并且将CArchive对象和与之相关联的CSocketFile对象进行分离

如用户需要马上将数据写入到串行化对象中
需要用到Flush函数
主要用于将缓冲区中剩余的数据强制地写入CArchive对象所关联的文件

...//省略部分代码
m_arhicve->WriteString(str+"\r\n"); //调用CArchive类的WriteString发生命令
//在这里可使用m_archive<<str<<"\r\n";
m_archive->Flush(); //强制将数据str写入到串行化对象中
m_archive->Close(); //关闭串行化对象

在程序中
如果没有调用函数Flush()
那么真正将数据写入到物理磁盘是在调用函数Close()关闭串行化对象以后
因此 一些重要的数据需要使用Flush()函数立即写入文件
以防丢失

猜你喜欢

转载自blog.csdn.net/eyetired/article/details/83062592
今日推荐