4 nov 2015

Los Streams, tipos y jerarquías en Java

Definición


Los flujos de datos o Streams, son abstracciones que permiten tratar la comunicación de información entre una fuente y un destino. Los flujos actúan como interfaz con el dispositivo o clase asociada:
·         Operación independiente del tipo de datos y del dispositivo, por lo que aporta mayor flexibilidad
·         Diversidad de dispositivos (fichero, pantalla, teclado, red, )
·         Diversidad de formas de comunicación
Modo de acceso: secuencial, aleatorio
Información intercambiada: binaria, caracteres, líneas

Están definidos en el paquete java.io

En Java se accede a la E/S estándar mediante los siguientes atributos estáticos de la clase java.lang.System:
System.in                    implementa la entrada estándar
System.out                  implementa la salida estándar
System.err                  implementa la salida de errores


Tipos de flujos

 Flujos de bytes (8 bits)
Realizan operaciones de entrada y salida de bytes.
Están orientados al tratamiento de datos binarios.
Utilizan las clases abstractas InputStream y OutputStream y sus descendientes.

Flujos de caracteres (16 bits)
Realizan operaciones de entrada y salida de caracteres.
Utilizan las clases abstractas Reader y Writer.
Se utilizan sobre todo para la internacionalización ya que permite manejar caracteres Unicode de 16 bits.

Jerarquía de flujos de bytes






Subclases de InputStream

Clase
Función
ByteArrayInputStream
Utiliza un buffer interno para los bytes leídos del stream
StringBufferInputStream
Obsoleta, se recomienda StringReader.
Los bytes leídos al stream son proporcionados desde una cadena.
FileInput Stream
Obtiene los bytes de entrada desde un fichero del sistema
PipedInputStream
Permite implementar mecanismos de tubería,  para por ejemplo desacoplar la entrada de la salida
FilterInputStream
Toma datos de otro stream transformándolos o añadiéndoles funcionalidad
SequenceInputStream
Permite realizar una concatenación lógica de flujos de entrada

Subclases de OutputStream

Clase
Función
ByteArrayOutputStream
Implementa un flujo de salida en el que los datos se van escribiendo en una matriz de bytes que va creciendo
FileOutputStream
Es un flujo de salida para escribir datos en un fichero o en un descriptor de fichero
PipedOutpudStream
Permite implementar mecanismos de tubería,  junto con PipedInputStream
FilterOutputStream
Permite hacer transformaciones en los datos de salida

Jerarquía de flujo de caracteres



No hay comentarios:

Publicar un comentario