C语言系统文件操作
FILE *pFile=fopen("1.txt","w");
fwrite("http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile);
fseek(pFile,10,SEEK_SET); //文件指针定位
fwrite("ftp:",1,strlen("ftp:"),pFile);
fwrite("http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile);
fflush(pFile);
//C语言系统文件操作采用缓冲区技术,若缓冲区未满,数据不马上写进文件中,若需要马上写进文件中去,需要调用fflush()
fclose(pFile);
还有相关函数: ftell() 、rewind()…
//读写函数读写到文件某个位置,文件指针就在某个位置,而且读/写也是从文件//指针位置开始的,读/写多少字节后,文件指针调整到读/写多少字节后的位置,调整文件指针位置fseek()
输入输出流方式:
ifstream ifs("4.txt");
char ch[100];
memset(ch,0,100);
ifs.read(ch,100);
ifs.close();
MessageBox(ch);
ofstream ofs("4.txt");
ofs.write("http://www.sunxin.org",strlen("http://www.sunxin.org"));
ofs.close();
Win32 API:
CreateFile() –创建或打开一个文件see details in MSDN
ReadFile() WriteFile() 如果读写要异步方式,在CreateFile()参数dwFlagsAndAttributes要包含FILE_FLAG_OVERLAPPED标志,且读/写API操作后,文件位置指针需要自己调整,调整指针位置API :SetFilePointer( )。
同步方式是读/写到哪个位置,文件指针就指向哪个位置,且读/写都是从文件指针位置开始的。
(同步:文件读/写API要读/写完成后才返回。异步:文件读/写API马上返回。)
MFC中的CFile类
MSDN:CFile is the base class for Microsoft Foundation file classes. It directly provides unbuffered, binary disk input/output services, and it indirectly supports text files and memory files through its derived classes.
无缓存的,二进制。
Read() Write()方法都是从文件当前位置读写的,see details in MSDN
另外可以从MFC中的CFileDialog获得文件地址参数,方法读写。
FILE *pFile=fopen("3.txt","w");
int i=98341;
char ch[5];
ch[0]=9+48;
ch[1]=8+48;
ch[2]=3+48;
ch[3]=4+48;
ch[4]=1+48;
itoa(i,ch,10);
数字与其对应的数字符号数值差为48
或者用itoa(…)转换即可
二进制文件和文本文件
n 文件是在计算机内存中以二进制表示的数据在外部存储介质上的另一种存放形式。
n 文件通常分为二进制文件和文本文件。
n 二进制文件是包含在 ASCII 及扩展 ASCII 字符中编写的数据或程序指令的文件。一般是可执行程序、图形、图象、声音等等文件。
n 文本文件(也称为ASCII文件):它的每一个字节存放的是可表示为一个字符的ASCII代码的文件。它是以 “行”为基本结构的一种信息组织和存储方式的文件,可用任何文字处理程序阅读的简单文本文件。
文本方式和二进制方式(在C语言系统文件操作下用到,后面的应该已经封装好了)
n 当我们按照文本方式往文件中写入数据时,一旦遇到换行字符(ASCII为10),则会转换为回车-换行(ASCII为13、10)。在读取文件时,一旦遇到回车-换行的组合(即连续的ASCII 13、10),则会转换为换行字符(ASCII为10)。
n 当我们按照二进制方式往文件中写入数据,则将数据在内存中的存储形式原样输出到文件中。
所以读取和写入的方式要保持一致。