C++文件读写操作一 (API函数)
一、相关函数原型
1、CreateFile
创建或打开(文件 pipes 邮槽 通信资源 磁盘驱动器(仅适用于 windowsNT ) 控制台 文件夹(仅用于打开) )、返回对象句柄
HANDLE CreateFile(
LPCTSTR lpFileName, // 指向文件名的指针
DWORD dwDesiredAccess, // 访问模式(GENERIC_READ / GENERIC_WRITE)
DWORD dwShareMode, // 共享模式
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 指向安全属性的指针
DWORD dwCreationDisposition, // 如何创建
DWORD dwFlagsAndAttributes, // 文件属性
HANDLE hTemplateFile // 用于复制文件句柄
);
2、WriteFile
写入
BOOL WriteFile(
HANDLE hFile, //文件句柄
LPCVOID lpBuffer, // 要写入的一个数据缓冲区
DWORD nNumberOfBytesToWrite, //要写入数据的字节数量
LPDWORD lpNumberOfBytesWritten, // 实际写入文件的字节数量
LPOVERLAPPED lpOverlapped // OVERLAPPED结构体指针,
// 如果文件是以FILE_FLAG_OVERLAPPED方式打开的话,那么这个指针就不能为
NULL
);
3、ReadFile
读取
BOOL ReadFile(
HANDLE hFile, //文件的句柄
LPVOID lpBuffer, // 用于保存读入数据的一个缓冲区
DWORD nNumberOfBytesToRead, //要读入的字符数
LPDWORD lpNumberOfBytesRead, //指向实际读取字节数的指针
LPOVERLAPPED lpOverlapped //OVERLAPPED结构体指针,
// 如果文件是以FILE_FLAG_OVERLAPPED方式打开的话,那么这个指针就不能为NULL
);
二、例子:
1、写入记事本
HANDLE hFile;
hFile=CreateFile(_T("test.txt"),GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD dwWrites;
WriteFile(hFile,"hello,world!",strlen("hello,world!"),
&dwWrites,NULL);
CloseHandle(hFile);
2、读取记事本中文本
HANDLE hFile;
hFile=CreateFile(_T("test.txt"),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
char ch[100];
DWORD dwReads;
ReadFile(hFile,ch,100,&dwReads,NULL);
ch[dwReads]=0;
CloseHandle(hFile);
MessageBox(CString(ch));