zoukankan      html  css  js  c++  java
  • 【转】MFC中用CFile读取和写入文件2

    原文网址:http://blog.sina.com.cn/s/blog_623a7fa40100hh1u.html

    CFile提供了一些常用的操作函数,如表1-2所示。

    1-2  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指针,nCountBuf里需要写入文件的字节数

    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);

  • 相关阅读:
    使用 Content-Encoding: br 替换 Content-Encoding: gzip
    fusionjs 学习一 基本试用
    fusionjs uber开源的通用web插件化开发框架
    wiremock docker 运行
    QLoo graphql engine 学习三 架构
    QLoo graphql engine 学习二 基本试用(kubernetes)
    QLoo graphql engine 学习一 基本试用(docker&&docker-compose)
    使用rollup 开发专业js library
    QLoo graphql engine了解
    Oracle数据库查看用户状态
  • 原文地址:https://www.cnblogs.com/wi100sh/p/4319195.html
Copyright © 2011-2022 走看看