Entrada/Salida (I/O): Leer y Escribir en Java

Cualquier programa realizado en Java que necesite llevar a cabo una operación de I/O lo hará a través de un stream. Un stream, cuya traducción literal es "flujo", es una abstracción de todo aquello que produzca o consuma información. Podemos ver a este stream como una entidad lógica. La vinculación de este stream al dispositivo físico la hace el sistema de entrada y salida de Java. Se ve pues la eficacia de esta implementación pues las clases y métodos de I/O 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 ficheros o un socket de red liberando a nuestro código de tener que saber con quién está interactuando.

Para traer la información, un programa abre un stream sobre una fuente de información (un fichero, memoria, un socket) y lee la información seriamente, de esta forma:

Similarmente, un programa puede enviar información a un destino externo abriendo un stream sobre un destino y escribiendo la información seriamente, de esta forma:

Byte streams : Nos proporciona un medio adecuado para el manejo de entradas y salidas de bytes y su uso lógicamente está orientado a la lectura y escritura de datos binarios. El tratamiento del flujo de bytes viene gobernado por dos clases abstractas que son InputStream y OutputStream. Cada una de estas clases abstractas tienen varias subclases concretas que controlan las diferencias ente los distintos dispositivos de I/O que se pueden utilizar. Así mismo, estas dos clases son las que definen los métodos que sus subclases tendrán implementados y, de entre todas, destacan las clases read() y write() que leen y escriben bytes de datos respectivamente.

Character streams : Proporciona un medio conveniente para el manejo de entradas y salidas de caracteres. Dichos flujos usan codificación Unicode y, por tanto, se pueden internacionalizar. Una observación: Este es un modo que Java nos proporciona para manejar caracteres pero al nivel más bajo todas las operaciones de I/O son orientadas a byte. Al igual que la anterior el flujo de caracteres también viene gobernado por dos clases abstractas: Reader y Writer. Dichas clases manejan flujos de caracteres Unicode. Y también de ellas derivan subclases concretas que implementan los métodos definidos en ellas siendo los más destacados los métodos read() y write() que, en este caso, leen y escriben caracteres de datos respectivamente.



Nombre:

Email:

Comentario: