Compartilhar via


Lendo e gravando arquivos

Se você estiver usado as funções de tratamento de arquivo da biblioteca de runtime C, as operações de leitura e gravação do MFC parecerão familiares. Este artigo descreve a leitura direta e a gravação direta em um objeto CFile. Você também pode fazer E/S de arquivo em buffer com a classe CArchive.

Para ler e gravar no arquivo

  1. Use as funções membro Read e Write para ler e gravar dados no arquivo.

    -ou-

  2. A função membro Seek também está disponível para migrar para um deslocamento específico dentro do arquivo.

Read usa um ponteiro para um buffer e o número de bytes a serem lidos, e retorna o número real de bytes que foram lidos. Se o número necessário de bytes não puder ser lido porque o EOF (fim do arquivo) foi atingido, será retornado o número real de bytes lidos. Se ocorrer algum erro de leitura, uma exceção será gerada. Write é semelhante a Read, mas o número de bytes gravados não é retornado. Se ocorrer um erro de gravação, incluindo não gravar todos os bytes especificados, uma exceção será gerada. Se você tiver um objeto válido CFile, poderá ler ou gravar nele, conforme mostrado no exemplo a seguir:

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 ) ); 
}

Observação

Normalmente, você deve executar operações de entrada/saída em um bloco de tratamento de exceção try/catch. Para saber mais, veja Tratamento de exceção (MFC).

Confira também

Arquivos