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
Use as funções membro
Read
eWrite
para ler e gravar dados no arquivo.-ou-
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).