天天看点

文件操作的几种方式

1)使用C语言中的文件操作:

写文件

FILE *p=fopen("1.txt","r");//文件名为1.txt,打开的方式为只读;

fwrite("welcome to the file system",1,strlen("welcome to the file system"),p);//往文件中写数据,这里使用fwrite函数,将一个字符窜

Fclose(p);//这个函数的调用,只是将要写入的内容放入缓冲区中,只有当工程关闭的时候,缓冲区的内容才被写入文件

Fflush(p)//这个函数,每当执行一次fwrite操作都会将缓冲区的内容及时写入文件中,这样就不需要关闭工程就能看到文件中的内容!
           

读文件;

FILE *p=fopen("1.txt","r");//打开一个文件,以只读的方式打开

char ch[100];//定义一个数组,接收从文件中读取的内容

// memset(ch,0,100);//初始化数组

// fread(ch,1,100,pFile);//读取文件中的内容到字符数组中

  char *pBuf;//用指针的形式

  fseek(p,0,SEEK_END);//首先将文件指针移动到文件的末尾的位置

  int len=ftell(p);//这个时候,p的位置就是该文件的占有的总的字节数

  pBuf=new char[len+1];//根据文件的大小,分配缓冲区的大小

  fseek(p,0,SEEK_SET);//将文件指针移动到文件的开始位置,

  fread(pBuf,1,len,p);//开始读取

  pBuf[len]=0;//由于字符数组的结尾标志是’\0’,实际上就是十进制的0

  Fclose(p);

  MessageBox(pBuf);//消息输出
           

2)使用c++的输入输出流进行操作;

写文件:  

ofstream out("2.txt");//构造一个输出流对象,并初始化(建立一个文件)

out.write("i am the student",strlen("i am the student"));像文件中写入数据

out.close();//关闭文件
           

读文件:

ifstream in("2.txt");构造一个输入流对象

char ch[100];

memset(ch,0,100);

in.read(ch,100);//读取文件内容到缓冲区中

in.close();//关闭

MessageBox(ch);//显示消息
           

3)使用CFile类进行操作;

写入文件

HANDLE hfile;//文件句柄

hfile=CreateFile("3.txt",GENERIC_WRITE |GENERIC_READ,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);创建一个文件,各个参数的含义,可以查阅文档

DWORD dwWrite;实际的输出的字节数

WriteFile(hfile,"i am a student",strlen("i am a student"),&dwWrite,NULL);

CloseHandle(hfile);//销毁文件句柄
           

读取文件:基本上和写入文件类似

HANDLE hfile;

hfile=CreateFile("3.txt",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL

,NULL);

char st[100];

    DWORD dword;

memset(st,0,100);

ReadFile(hfile,st,100,&dword,NULL);

CloseHandle(hfile);

MessageBox(st);