1. Introducción

En C++, se utilizan streams (flujos) para gestionar la lectura y escritura de datos.
Existen cuatro flujos predefinidos.

  1. cin: Entrada Estandar ( normalmente teclado). (les suena?)
  2. cout: Salida Estandar ( normalmente Monitor).(les suena?)
  3. cerr: Salida de Error Estandar no almacenados en Buffer ( normalmente Monitor).
  4. clog: Salida de Error Estandar almacenados en Buffer.

Desde el punto de vista informático, un fichero es una colección de información que almacenamos en un soporte magnético u óptico para poder manipularla en cualquier momento.
Los Flujos o Streams se pueden también asociar a Nombres de ficheros y con ello podemos acceder a manipular un fichero.

Técnicamente, un Stream o Flujo es el enlace lógico utilizado por el programador en C o
C++ para leer o escribir datos desde y hacia los dispositivos estándar conectados a la PC. A modo de recordatorio ya trabajamos con flujos de entrada y salida ellos son: cin y cout.
Ver que existe entre el Archivo y el Stream un buffer de memoria RAM.
Las operaciones de E/S implementadas así son más eficientes ya que el acceso a la memoria RAM consume menos tiempo que el acceso a un dispositivo físico. El buffer hace que el número de accesos al fichero físico sea menor. El uso del buffer permite realizar operaciones de entrada salida de forma más eficiente aún.

Importante : Al igual que los flujos cin y cout , los flujos de E / S solo pueden transferir datos en una dirección , esto significa que se tienen o pueden que definir flujos diferentes para lectura y escritura de datos .

En definitiva,  trabajar con  un fichero lo vemos como trabajar con un stream.
Dicho stream permite la transferencia de datos entre el programa y el fichero en disco, o sea que no trabajamos sobre el archivo, si no mas bien sobre el stream, y los datos del stream son volcados luego al Fichero, es decir que llegamos al fichero de una manera indirecta.

Podemos pensar que los son como dispositivos lógicos streams generan o consumen información.