第6章 文件操作.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
企业资料网企业管理资料库、法规库、音乐库 第6章 文件操作 6.1 文件操作类CFile 学习目标 使用CFile类进行文件读写、删除、改名及访问文件属性. 1. 文件的打开与关闭 (1)文件打开函数Open BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL); 参数lpszFileName:为欲打开的文件名,文件名可以包含路径和文件名两部分。如“d:\\bak\\test.txt”, 如果此字符串不包含文件路径,如“test.bak”,则系统默认为当前路径,即生成的可执行文件所在目录。 参数nOpenFlags:用于设置访问模式,指定当打开文件时进行的动作,可以将以下所列模式用按位或“|”操作符连接起来。至少应有一个访问模式,modeCreate是可选的。以下是常用参数列表: CFile::modeCreate:调用构造函数构造一个新文件。 CFile::modeRead?: 打开文件仅供读。 CFile::modeReadWrite:? 打开文件供读/写。 CFile::modeWrite:?? 打开文件仅供写。 CFile::typeText: 设置文本文件模式(只能用在子类中)。 CFile::typeBinary:设置二进制文件模式(只能用在子类中)。 参数 pError:是一个异常类的指针,可通过该类和函数的返回值来确定函数是否调用成功,如下表所示。 1. 文件的打开与关闭 注意:参数 pError为CFileException类型。而CFileException是异常类的一种,用于检测文件操作中可能出现的错误。关于异常类,将在第八章进行详细的介绍。 例如: CFile f; if (!f.Open(“D:\\bak\\test.txt”, CFile::modeCreate | CFile::modeWrite)) return false; 1. 文件的打开与关闭 (2)用于打开文件的构造函数 CFile(LPCTSTR lpszFileName, UINT nOpenFlags) throw( CFileException ); 如: CFile f(“D:\\bak\\test.txt”, Cfile::modeRead); 注意:构造函数没有返回值,当打开文件出错时只是产生一个异常。所以不能象函数那样通过分支语句来保证文件已打开,而应使用TRY/CATCH宏来判断。 例: CString strFileName = “D:\\bak\\test.txt”; TRY { CFile f(strFileName,CFile::modeCreate | CFile::modeWrite); } CATCH(CfileException e) { #ifdef_DEBUG afxDump″文件不能打开!″e-m_cause″\n″; #endif }END_CATCH 1. 文件的打开与关闭 (3)成员函数Close 定义:void Close(); Close函数用于关闭由Open函数打开的文件。使用Open函数打开文件后,应使用Close函数释放文件句柄及缓冲区的资源。 打开文件和关闭文件的例子。 CFile f; if (!f.Open(“D:\\bak\test.txt”, CFile::modeRead)) { MessageBox(“打开文件失败!”); return ; } f.Close(); 2 文件的读写 (1)读写函数 virtual UINT Read (void* lpBuf, UINT nCount) ; throw(CFileException); Read函数返回值是传输到缓冲区的字节数。 参数lpBuf:指向用户提供的缓冲区以接收从文件中读取的数据。 参数nCount:为可以从文件中读出字节数的最大值。 注意:对所有CFile类,如果到达文件尾,则返回值可能比nCount小。 virtual void Write(const void* lpBuf, UINT nCount); throw (CFileException); Write函数的参数与Read函数的参数类似。 参数lpBuf:指向用户提供的缓冲区,包含将写入文件中的数据。 参数nCount:从缓冲区内传输的字节数。 Write在几种情况下均产生异常,包括磁盘满的情况、磁盘为写保护状态等。 注意:CFile类并没有提供类似EOF之类的文件结束

文档评论(0)

38号店铺 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档