Saltar la navegación

2.- Concepto de flujo.

Caso práctico

Antonio está estudiando un poco antes de irse a dormir. Se ha tomado un vaso de leche con cacao y está repasando el concepto de flujo. Entenderlo al principio, cuando lo estudió por primera vez, le costó un poco, pero ya lo entiende a la perfección y piensa que si le sale alguna pregunta en el examen de la semana que viene, sobre esto, seguro que la va a acertar.

Antonio de pie y de perfil, con los brazos flexionados a media altura.
Ministerio de Educación y FP (CC BY-NC)



Esquema en el que se ve una entidad rectangular fuente y otro programa, y entre medias una línea que representa un flujo de lectura. Más abajo lo mismo pero a la izquierda pone Programa y a la derecha Destino, y entre las dos una línea que representa un flujo de escritura.
Ministerio de Educación y FP (CC BY-NC)

La clase Stream representa un flujo o corriente de datos, es decir, un conjunto secuencial de bytes, como puede ser un archivo, un dispositivo de entrada/salida (en adelante E/S), memoria, un conector TCP/IP (Protocolo de Control de Transmisión/Protocolo de Internet), etc.

Cualquier programa realizado en Java que necesite llevar a cabo una operación de entrada salida lo hará a través de un stream.

Un flujo o stream es una abstracción de aquello que produzca o consuma información. Es una entidad lógica.

Las clases y métodos de E/S que necesitamos emplear son las mismas independientemente del dispositivo con el que estemos actuando, luego, el núcleo de Java, sabrá si tiene que tratar con el teclado, el monitor, un sistema de archivos o un socket de red liberando al programador de tener que saber con quién está interactuando.

La vinculación de un flujo al dispositivo físico la hace el sistema de entrada y salida de Java.

En resumen, será el flujo el que tenga que comunicarse con el sistema operativo concreto y "entendérselas" con él. De esta manera, no tenemos que cambiar absolutamente nada en nuestra aplicación, que va a ser independiente tanto de los dispositivos físicos de almacenamiento como del sistema operativo sobre el que se ejecuta. Esto es primordial en un lenguaje multiplataforma y tan altamente portable como Java.

Autoevaluación

Pregunta

Señala la opción correcta:

Respuestas

La clase Stream puede representar, al instanciarse, a un archivo.

Si programamos en Java, hay que tener en cuenta el sistema operativo cuando tratemos con flujos, pues varía su tratamiento debido a la diferencia de plataformas.

La clase keyboard es la clase a utilizar al leer flujos de teclado.

La vinculación de un flujo al dispositivo físico la hace el hardware de la máquina.

Retroalimentación