读取和写入文件

如果已使用 C 运行时库文件处理函数,则 MFC 读取和写入操作将显得很熟悉。 本文介绍如何直接对 CFile 对象进行读取和写入。 还可以使用 CArchive 类执行缓冲文件 I/O。

读取和写入文件

  1. 使用 ReadWrite 成员函数在文件中读取和写入数据。

    - 或者 -

  2. Seek 成员函数还可用于在文件中移动特定偏移量。

Read 获取指向缓冲区的指针和要读取的字节数,并返回读取的实际字节数。 如果由于到达文件尾 (EOF) 而无法读取所需的字节数,则返回读取的实际字节数。 如果发生任何读取错误,则会引发异常。 WriteRead 类似,但不会返回写入的字节数。 如果发生写入错误,包括未写入指定的所有字节,则会引发异常。 如果有一个有效的 CFile 对象,则可以对该对象进行读取或写入,如以下示例所示:

TCHAR   szBuffer[256]; 
UINT    nActual = 0; 
CFile   myFile;

if ( myFile.Open( _T("c:\\test\\myfile.dat"), CFile::modeCreate |   
   CFile::modeReadWrite ) )
{
   myFile.Write( szBuffer, sizeof( szBuffer ) ); 
   myFile.Flush();
   myFile.Seek( 0, CFile::begin );
   nActual = myFile.Read( szBuffer, sizeof( szBuffer ) ); 
}

注意

通常应在 try/catch 异常处理块内执行输入/输出操作。 有关详细信息,请参阅异常处理 (MFC)

另请参阅

文件