zoukankan      html  css  js  c++  java
  • windows编程中文件操作的几种方法

    windows编程中文件操作有以下几种常见方法:


    1.C语言中文件操作。
    2.C++语言中的文件操作。
    3.Win32 API函数文件操作。
    4.MFC CFile类文件操作。
    5.MFC CFileDialog类的文件操作。
    6.注册表文件操作。

    下面我来详细说明一下各种文件操作方法:
    1. C语言中文件操作.需要包含的头文件STDIO.H

    写入文件:

    fread(buffer,size,count,fp));

    fwrite(buffer,size,count,,fp);

    size:要读写的字节数(记录的长度).

    count:要读写多少个size自己的数据项,即读/写的记录数

    返回:已读入或输出的项数,即执行成功返回count的值。

    如 fwrite(arr,80,3,fp);

    表示从数组名arr所代表的数组起始地址开始,每次输出80B,共输出3次,即输出240B,输出到fp所指向的磁盘文件中。如果指向成功,返回值为3.


    FILE *pfile=fopen("C.txt","w");//以写的方式打开C.txt文件。
    fwrite("Welcome to VCFans!",1,strlen("Welcome to VCFans!"),pfile);//将数据写入文件。
    fflush(pfile);//刷新缓冲区。将缓冲区数据写入文件
    fclose(pfile);//关闭文件


    读取文件:


    FILE *pfile=fopen("C.txt","r");//以读的方式打开C.txt文件。
    char FileContent[100];
    memset(FileContent,0,100);//初始化FileContent
    fread(FileContent,1,100,pfile);//将刚才C.txt文件中的内容读入到FileContent
    MessageBox(FileContent);//输出结果
    fclose(pfile);//关闭文件

    2.C++语言中的文件操作。需要包含的头文件fstream.h


    写入文件:


    ofstream ofs("C++.txt");//建立ofstream对像。
    ofs.write("Welcome to VCFans!",strlen("Welcome to VCFans!"));//将数据写入文件
    ofs.close();//关闭ofstream对象。

      读取文件:

    ifstream ifs("C++.txt");
    char FileContent[100];
    memset(FileContent,0,100);//初始化FileContent
    ifs.read(FileContent,100);//读取数据
    ifs.close();//关闭ifstream对像
    MessageBox(FileContent);//输出结果

    3.Win32 API函数文件操作。需要包含的头文件winbase.h,需要类库:kernel32.lib

    写入文件:

    HANDLE hFile;//定义一个句柄。
    hFile=CreateFile("API.txt",
    GENERIC_WRITE,
    FILE_SHARE_WRITE,
    NULL,
    CREATE_NEW,
    FILE_ATTRIBUTE_NORMAL,
    NULL);//使用CreatFile这个API函数打开文件
    DWORD Written;
    WriteFile(hFile,"Welcome to VCFans!",strlen("Welcome to VCFans!"),&Written,NULL);//写入文件
    CloseHandle(hFile);//关闭句柄
    
    
      读取文件:
    
    
    HANDLE hFile;//定义一个句柄。
    hFile=CreateFile("API.txt",
    GENERIC_READ,
    FILE_SHARE_READ,
    NULL,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,
    NULL);//使用CreatFile这个API函数打开文件
    DWORD dwDataLen;
    char FileContent[100];
    ReadFile(hFile,FileContent,100,&dwDataLen,NULL);//读取数据
    FileContent[dwDataLen]=0;//将数组未尾设零。
    CloseHandle(hFile);//关闭句柄
    MessageBox(FileContent);//输出结果

    4.MFC CFile类文件操作。需要包含的头文件afx.h


    写入文件:

    CFile file("CFile.txt",CFile::modeCreate| CFile::modeWrite);//构造CFile对象
    file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//写入数据到文件
    file.Close();//关闭CFile对象。
    
    
    读取文件:
    
    
    CFile file("CFile.txt",CFile::modeRead);//构造CFile对象
    char FileContent[100];
    memset(FileContent,0,100);//初始化FileContent
    file.Read(FileContent,100);//读入数据
    file.Close();//关闭文件对象
    MessageBox(FileContent);//输出数据

    5.MFC CFileDialog类的文件操作。需要包含的头文件Afxdlgs.h


    写入文件:

    CFileDialog fileDlg(FALSE,"txt","CFileDialog.txt");//建立CFileDialog对象
    if(IDOK==fileDlg.DoModal())
    {
    CFile file(fileDlg.GetFileName(),CFile::modeCreate| CFile::modeWrite);//构造CFile对象
    file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//写入数据到文件
    file.Close(); 
    };
    
    
    读取文件:
    
    
    CFileDialog fileDlg(TRUE,"txt","CFileDialog.txt");//建立CFileDialog对象
    if(IDOK==fileDlg.DoModal())
    {
    CFile file(fileDlg.GetFileName(),CFile::modeRead);//构造CFile对象
    char FileContent[100];
    memset(FileContent,0,100);//初始化FileContent
    file.Read(FileContent,100);//读入数据
    file.Close();//关闭文件对象
    MessageBox(FileContent); 
    };

    6.注册表文件操作。


        写入注册表:

    HKEY hKey;
    DWORD dwSex=1;
    RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//打开注册表键
    RegSetValueEx(hKey,"sex",0,REG_DWORD,(CONST BYTE*)&dwSex,4);//写入注册表数据
    RegCloseKey(hKey);//关闭注册表键
    读注册表:
    HKEY hKey;
    RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//打开注册表键
    DWORD dwType;
    DWORD dwValue;
    DWORD dwSex;
    RegQueryValueEx(hKey,"sex",0,&dwType,(LPBYTE)&dwSex,&dwValue);//查询注册表数据
    RegCloseKey(hKey);//关闭注册表键
    CString str;
    str.Format("sex=%d",dwSex);
    MessageBox(str);
  • 相关阅读:
    [AX]AX2012开发新特性outer join中使用QueryFilter
    [AX]AX2012开发新特性表继承
    docker环境安装
    poj 3469
    poj 1187
    poj 1159
    poj 2135
    poj 1273
    poj 1458
    poj 1141
  • 原文地址:https://www.cnblogs.com/youxin/p/2771220.html
Copyright © 2011-2022 走看看