MFC文件读写

随笔记录:

1、使用CFile创建、写文件

	CFile testfile;
	testfile.Open("C:\\2.plt",CFile::modeReadWrite | CFile::modeCreate,NULL);
	testfile.Write("abcd2",sizeof("abcd2"));
	testfile.Close();


在C目录下写文件2.plt,写入的内容是“abcd2”

 

2、创建、读取现有文件

	CFile testfile;
	testfile.Open("C:\\rovast.txt",CFile::modeCreate| CFile::modeReadWrite);
	testfile.Write("Hello5",sizeof("Hello5"));
	testfile.Close();

	testfile.Open("C:\\rovast.txt",CFile::modeRead);
	UINT testfilelength =0;
	testfilelength = testfile.GetLength();

	BYTE* pBuf = NULL,*pData;
	pBuf = new BYTE[testfilelength+8];
	if(pBuf != NULL)
	{
		memset(pBuf,0,sizeof(BYTE)*testfilelength);
	}

	testfile.Read(pBuf,testfilelength);
	testfile.Close();

	pData = pBuf;

	for (UINT i=0; i<testfilelength;i++,pData++)
	{
		BYTE q = *pData;
		TRACE("%c",q);
	}

	if (pBuf != NULL)
	{
		delete []pBuf;
	}


在使用 CFile.Read功能时,本来想自定义一个文件长度的数组,无奈我使用char Buf[length],编译器不通过,说数组的长度不确定。所以此处使用了指针来实现。

需要注意的是我定义了两个指针,其中一个申请了一段内存,这个指针指向了内存首地址。后来在正确读取数据后,将首地址值传给了pData。使用pData进行读取工作。最后在使用结束之后释放这段内存。如果直接操作的是pBuf,在读取的时候进行++的操作,最后使用delete操作编译器可以通过,但是在使用软件的时候会报错

你可能感兴趣的:(mfc,文件,读写文件,CFile)