Hago esta pregunta porque por más que leo y leo no puedo internalizar el concepto de flujo ya que no encuentro definiciones precisas.
Por un lado he leído que un flujo es una abstracción de todo aquello que produzca o consuma información
Por otro lado leí que un flujo de entrada/salida representa una fuente de entrada o un destino de salida, entonces me imagino que un flujo de entrada podría ser el teclado y un flujo de salida el monitor. Entonces podría decir que un flujo puede representar diversas clases de fuentes como archivos, teclados, micrófonos, escáner, etc mientras que también podría representar diversas clases de destinos como monitores, impresoras, archivos, etc. Hasta aquí todo bien.
Luego me confundo al leer que un flujo representa una secuencia de bytes ¿ qué acaso el flujo no era la fuente de dónde se extraen los bytes o el destino hacia dónde van los bytes ? Incluso en un libro encontré que un flujo se refiere a los datos ordenados que se leen de un archivo o se escriben en un archivo. Con esto me confunden y ahora me hacen creer que el flujo son los datos que se mueven.
Luego leo lo siguiente: Un programa utiliza un flujo de salida para escribir los datos en un destino ¿ ? Ahora me salen con que el flujo no es el destino en dónde llegan los datos sino que el flujo es el tubo por dónde movilizo los datos para que lleguen al destino.
Total, ¿el flujo es el fuente/destino? o ¿es el tubo por dónde se mueven los datos? o ¿es en sí los datos que se mueven?
Pues si es que hago una analogía con un río por dónde se desplaza el agua, entonces tendría:
Fuente/Destino
Canal
Agua
¿Cuál es el flujo? La Fuente/Destino - El Canal por dónde se desplaza el agua - ¿El agua?
De antemano gracias a todos por sus respuestas. :