2.10 Manipulación de Archivos de Objetos

El sistema de E/S de C++ contiene clases tales como ifstream, ofstream, y fstream para controlar el manejo de archivos. Estas clases se derivan de la clase fstream-base, y están declaradas en el archivo de cabecera iostream.

Un archivo puede abrirse de dos formas, usando la función constructor de la clase y usando la función miembro open() de la clase.

Al abrir el archivo mediante el constructor, necesitamos pasar el nombre del archivo deseado como parámetro al constructor.

La función open() puede usarse para abrir varios archivos que utilizan el mismo objeto flujo. El segundo argumento de la función open(), llamado modo de archivo especifica el propósito para el que se abre el archivo.

Si no especificamos el segundo argumento de la función open(), se utilizan los valores por defecto especificados en el prototipo de estas funciones miembro de la clase al abrir el archivo. Los valores por defecto son los siguientes:

ios::in - para funciones ifstream, que indica abrir solo para lectura.

ios::out - para funciones ofstream, que indica abrir solo para escritura.

Cuando abrimos un archivo solo para escritura, se crea un nuevo archivo solamente cuando no existe ningún archivo con dicho nombre. Si ya existe un archivo con ese nombre, entonces se borra su contenido, y el archivo es presentado como un archivo limpio.

Para abrir un archivo existente para actualizar sin perder el contenido original necesitamos abrirlo en modo añadir. La clase fstream no ofrece un modo por defecto, y por lo tanto es necesario introducirlo de forma explicita al usar un objeto de la clase fstream. Podemos especificar mas de un modo de archivo usando el operador de bits OR al abrir un archivo.