Leer y escribir en archivos
Si ha usado las funciones de control de archivos de la biblioteca en tiempo de ejecución de C, las operaciones de lectura y escritura de MFC le van a parecer conocidas. En este artículo se explican la lectura y la escritura directas en un objeto CFile
. También puede realizar E/S de archivos almacenados en búfer con la clase CArchive.
Para leer y escribir en el archivo
Use las funciones miembro
Read
yWrite
para leer y escribir datos en el archivo.o bien
La función miembro
Seek
también está disponible para ir a un desplazamiento específico dentro del archivo.
Read
toma un puntero a un búfer y el número de bytes que se van a leer y devuelve el número real de bytes leídos. Si no se puede leer el número necesario de bytes porque se alcanza el fin de archivo (EOF), se devuelve el número real de bytes leídos. Si se produce algún error de lectura, se inicia una excepción. Write
es similar a Read
, aunque no se devuelve el número de bytes escritos. Si se produce un error de escritura, incluida la no escritura de todos los bytes especificados, se inicia una excepción. Si tiene un objeto válido CFile
, puede leer o escribir en él como se muestra en el ejemplo siguiente:
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 ) );
}
Nota:
Normalmente debe llevar a cabo operaciones de entrada y salida dentro de un bloque de control de excepciones try
/catch
. Para obtener más información, vea Control de excepciones (MFC).