第一种:
Header: <fstream>
Namespace: std
成员函数open(),用来打开文件.
原型:void open(const char* filename,int mode,int access);
其中: filename: 要打开的文件名
mode: 要打开文件的方式
access: 打开文件的属性 缺省情况为opening protection
打开文件的方式: ios::app: 以追加的方式打开文件
ios::ate: 文件打开后定位到文件尾
ios::binary: 以二进制方式打开文件,缺省的方式是文本方式
ios::in: 文件以输入方式打开
ios::out: 文件以输出方式打开
ios::trunc: 如果文件存在,把文件长度设为0
fstream有两个子类:ifstream(input file stream)和ofstream(output file stream),ifstream默认以输入方式打开文件,ofstream默认以输出方式打开文件.C++ I/O系统管理两个与一个文件相联系的指针。一个是读指针,它说明输入操作在文件中的位置;另一个是写指针,它说明文件下次写操作的位置。每次执行输入或输出时,相应的指针自动变化。
文件指针的定位:使用成员函数是 seekg()和 seekp(),seekg()是设置读位置,seekp是设置写位置。
它们最通用的形式如下:
istream &seekg(off_type offset,seekdir origin);
ostream &seekp(off_type offset,seekdir origin);
offset 偏移量;seekdir 可取值ios::beg(文件开头), ios::cur(文件当前位置), ios::end(文件结尾);这两个函数一般用于二进制文件,因为文本文件会因为系统对字符的解释而可能与预想的值不同。
第二种:
FILE 常用函数(均未写出形参表):fopen() fwrite() fread() fflush() fseek() ftell() fclose() rewind()等
FILE *fopen( const char *filename , const char *mode );
第三种:
win32 常用函数(形参表均未写出) CreateFile() ReadFile() WriteFile() CloseHandle()
具体实现细节参看Platform SDK
第四种(常用): CFile类 常用成员函数 Open() Read() Write() Flush() GetLength() Seek() SeekToBegin() SeekToEnd() 等
构造函数:
CFile( );
CFile(HANDLE hFile );
CFile(LPCTSTR lpszFileName ,UINT nOpenFlags );
nOpenFlags可以是下面的一种或几种的组合:
CFile::modeCreate 直接构造去创建一个新的文件如果这个文件存在,则删除这个文件里所有内容
CFile::modeNoTruncate 联合创建属性,如果这个文件已创建,则不删除原文件内容
CFile::modeRead 打开为只读属性.
CFile::modeWrite 打开为只写属性.
CFile::modeReadWrite 打开为读写属性.
CFile::modeNoInherit 防止这个文件来源于子进程.
CFile::shareDenyNone 在这个文件读写处理之外打开这个文件
CFile::shareDenyRead 以独占方式打开,拒绝其他读操作
CFile::shareDenyWrite 以独占方式打开,拒绝其他写操作
CFile::shareExclusive 以独占方式打开文件,拒绝其他读写操作访问这个文件
CFile::shareCompat 这个属性在 32 bit MFC是不可用的
CFile::typeText 设置文本模式特别处理回车换行 (used in derived classes only).
CFile::typeBinary 设置二进制模式(used in derived classes only).
CFile::osNoBuffer CFile::osWriteThrough CFile::osRandomAccess CFile::osSequentialScan (这些我还木有用过)