Flujos I/O (Entrada y Salida)

Share Embed


Descripción


FLUJOS I/O
Carlos Chávez
Programación Orientada a Objetos
2015


Contenido

Introducción 2
Flujos E/S (I/O Streams) 2
Propiedades 2
Flujos Estándar 3
Características 3
Utilización de Flujos 4
Clasificación de Flujos 4
Jerarquía de Flujos 5
Serialización de Objetos 6
Flujos para Escritura y Lectura 7
Conclusiones 7



Introducción
El principal objetivo de este documento es explicar el uso, funcionamiento el implementación de los flujos de entrada y salida en Java, con esto podremos asegurarnos de comprender y poner en práctica el manejo de archivos que serán siempre muy útiles al momento de trabajar con comunicación de procesos y bases de datos.
Flujos E/S (I/O Streams)
En Java se define la abstracción de flujo (stream) para lograr la comunicación o paso de información entre el programa y el exterior.


Propiedades
Operación independiente del tipo de datos y del dispositivo
Mayor flexibilidad (redirección, combinación)
Diversidad de dispositivos (ficheros, pantalla, teclado, red, etc)
Diversas formas de comunicación

Flujos Estándar
En Java se accede a las entrada/salida estándar por medio de campos estáticos de la clase java.lang.System. Dentro de ésta clase tenemos lo siguiente:
System.in Implementa la entrada estándar
System.out Implementa la salida estándar
System.err Implementa la salida de error

Características
System.in
Instancia de la clase InputStream, es un flujo de bytes de entrada.
Sus métodos son:
read() permite leer un byte de la entrada como tipo entero.
skip() Ignora n bytes de la entrada.
available() número de bytes disponibles para leer en la entrada.
System.out
Instancia de la clase PrintStream, es un flujo de bytes de salida.
Sus métodos son:
print(), println()
flush() vacía el búfer de salida escribiendo su contenido.
System.err
Tiene un funcionamiento similar a System.out.
Es utilizado para enviar mensajes de error a la salida estándar, por ejemplo a un fichero o imprimirlo en consola.
Utilización de Flujos
Los flujos son implementados en las clases pertenecientes al paquete java.io.
Esencialmente todos los flujos funcionan igual, independientemente de la fuente de datos.
Las clases para la utilización de los flujos son: java.io.Reader y java.io.Writer.
Clasificación de Flujos
Los diferentes tipos de flujos se clasifican de la siguiente manera:
Representación de la Información
Flujos de Bytes: implementan las clases InputStream y OutputStream
Flujos de Caracteres: implementan las clases Reader y Writer.
NOTA: Se puede pasar de un flujo de bytes a uno de caracteres mediante InputStreamReader y OutputStreamWriter.
Propósito
Entrada: InputStream, Reader.
Salida: OutputStream, Writer.
Lectura/Escritura: RandomAccessFile.
Transformación de datos
Realizan algún tipo de procesamiento sobre los datos, por ejemplo conversiones, filtrados tales como: BufferedReader, BufferedWriter.




Jerarquía de Flujos
En el lenguaje Java los flujos de datos se describen mediante clases que forman jerarquías según sea el tipo de dato char Unicode de 16 bits o byte de 8 bits. A su vez, las clases se agrupan en jerarquías según sea su función de lectura o de escritura.

Flujos de Bytes (Byte, 8 bits)




Flujos de Caracteres (char Unicode, 16 bits)

Serialización de Objetos
Para que un programa java pueda convertir un objeto en bytes y pueda luego recuperarlo, el objeto necesita ser Serializable. Al poder convertir el objeto a bytes, ese objeto se puede enviar a través de red, guardarlo en un fichero, y después reconstruirlo al otra lado de la red (destino), leerlo del fichero, etc.
Cuando se serializa un objeto en Java, lo que ocurre es que convertimos los datos en flujos de bytes que luego se convertirán nuevamente en una copia de los datos originales. Si esto suena algo confuso, se debe pensar en la serialización en los siguientes términos. Supongamos que nos encontramos trabajando en un documento y lo guardamos en el disco duro. Lo que estaríamos haciendo, por así decirlo, sería serializar los datos de forma tal que podamos obtener una copia más tarde. La serialización hace que la transferencia de datos en la red sea mucho más fácil y más eficiente. Es importante entender lo esencial de Java antes de serializar un objeto. El programador debe crear un archivo de E/S de texto aparte, para poder almacenar y cargar datos. La serialización de objetos en Java evita tener que crear este archivo de texto para almacenar los datos, y ahorrar tiempo así como también costos de programación
Para que un objeto sea serializable basta con que implemente la interfaz Serializable. Como la interfaz Serializable no tiene métodos, es muy sencillo implementarla, basta con un implements Serializable y nada más.
Flujos para Escritura y Lectura
Clase ObjectOutputStream
Utilizamos el método writeObject(). El cual es responsable de escribir el estado del objeto en el flujo.
Ejemplo: flujoSalida.writeObject(objetoClase);
Clase ObjectInputStream
Utilizamos el método readObject(). El cual es responsable de recuperar el estado del flujo.
Ejemplo: objetoClase = (Clase)flujoEntrada.readObject();
Conclusiones
Los flujos de E/S en Java siguen el siguiente modelo:
Abrir, usar y cerrar el flujo.
Los flujos estándar son: System.in System.out y System.err
Existen dos tipos de clases de E/S
Readers y Writers para texto (Basados en caracteres)
Streams (InputStream y OutputStream) para datos binarios (Basados en el tipo byte)
Los flujos de E/S se pueden combinar para facilitar su utilización.
Tanto la entrada como la salida suelen estar propensas a errores.
Debido a la interacción exterior (usuario).
Tratamiento de Excepciones (IOException).


[Type here][Type here][Type here]
FLUJOS I/O " Carlos ChávezPage 2 of 8

FLUJOS I/O " Carlos Chávez
Page 7 of 7








[Term Paper Title]
[Your Name]
[Date]
Results
[Title of Term Paper]
[Your Name]

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.