MFC中用CFile读取和写入文件

CFile提供了一些常用的操作函数,
Open
打开文件
Close
关闭文件
Flush
刷新待写的数据
Read
从当前位置读取数据
Write
向当前位置写入数据
GetLength
获取文件的大小
Seek
定位文件指针至指定位置
SeekToBegin
定位文件指针至文件头
SeekToEnd
定位文件指针至文件尾
GetFileName
获取文件名,如:“NOTEPAD.EXE”
GetFilePath
获取文件路径,如:“C:\WINDOWS \NOTEPAD.EXE”
GetFileTitle
获取文件标题,如:“NOTEPAD”
GetPosition
获取当前文件指针
GetStatus
获取当前文件的状态,返回一个CFileStatus
#Remove
静态方法,删除指定文件
#Rename
静态方法,重命名指定文件
注意最后两个静态函数,其实它们封装了Windows API中关于文件管理的函数。
 
使用CFile操作文件的流程如下:
构造一个CFile对象。
调用CFile::Open()函数创建、打开指定的文件。
调用CFile::Read()和CFile::Write ()进行文件操作。
调用CFile::Close()关闭文件句柄。
 
 
文件指针的位置设置可以使用:
Seek( LONG lOff, UINT nFrom )   把文件指针移动到指定位置
lOff :是指针偏移字节数,若向后偏移则为正数,若向前偏移,则为负数。
nFrom :MSDN上有三种取值:
CFile::begin  从文件开头开始算起,lOff为正数;
CFile::current  当前位置开始算起;
CFile::end     从文件结尾开始算起,lOff为负数;
SeekToBegin( )      把文件指针移到文件开头
SeekToEnd( )          把文件指针移到文件末尾
GetPosition( )        返回当前文件指针的位置
 
获取文件的字节数可用 GetLength( )  此函数的返回值为DWORD,但可直接用来分配数组元素数目,例如:
DOWRD len=file.GetLength();
char *pBuf=new char[len+1]   / int *pBuf=new int[len/4]
char占一个字节,int占四个字节。
 
写入文件:
CFile file;
file.Open("E:\\VC\\1.txt",CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate,NULL);
file.Write("HelloWorld",strlen("HelloWorld")); 
 //Write( const void* lpBuf, UINT nCount )  lpBuf是写入数据的Buf指针,nCount是Buf里需要写入文件的字节数
file.close( );
 
读取文件:
CFile file;
file.Open("E:\\VC\\1.txt",CFile::modeRead,NULL);
DWORD len=file.GetLength( );
char Buf[len+1];
Buf[len]=0;  //0终止字符串,用于输出。
file.Read(Buf,len);   //Read( void* lpBuf, UINT nCount ) lpBuf是用于接收读取到的数据的Buf指针nCount是从文件读取的字节数
MessageBox(Buf);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值