6 flujos y archivos

11
FLUJOS Y Programación Orientada a Objetos 6 M.S.C. Raúl Mora Reyes M.S.C. Raúl Mora Reyes

Upload: raul-mora-reyes

Post on 08-Apr-2016

231 views

Category:

Documents


0 download

DESCRIPTION

Utiliza flujos para almacenar objetos en un archivo.

TRANSCRIPT

Page 1: 6 Flujos y Archivos

FLUJOS Y Programación Orientada a Objetos6

M.S.C. Raúl Mora Reyes

M.S.C. Raúl Mora Reyes

Page 2: 6 Flujos y Archivos

FLUJOS

Java utiliza el paquete java.io para manejar entrada y salida

La E/S se basa en el concepto de flujo, que es una secuencia ordenada de datos que se toman de una fuente (flujos de entrada) o se envían a un destino (flujos de salida).

Permiten al programador ignorar los detalles específicos de la plataforma, y permiten el acceso a recursos del sistema por medio de archivos (files).

M.S.C. Raúl Mora Reyes

Page 3: 6 Flujos y Archivos

PASOS1. La clase de donde se crearan los objetos debe implementar la

interfaz Serializable, de no hacerlo no se almacenarán en el archivo.

2. Para almacenar objetos en un archivo se hace uso de 2 flujos: ObjectOutputStream que convierte el objeto en datos binarios, y FileOutputStream que almacena los datos en el archivo.

3. Para leer objetos en un archivo se hace uso de 2 flujos: ObjectInputStream que convierte el objeto en datos binarios, y FileInputStream que almacena los datos en el archivo.

M.S.C. Raúl Mora Reyes

Page 4: 6 Flujos y Archivos

ObjectOutputStream FileOutputStream

FileInputStream ObjectInputStream

Serializable

implementsEscritura

Lectura

Objeto Binario Archivo

Archivo Binario Objeto

M.S.C. Raúl Mora Reyes

Page 5: 6 Flujos y Archivos

PROCESO: ESCRITURA

Abrir flujo para escritura

ObjectOutputStream escribir = new ObjectOutputStream( new FileOutputStream(“Agenda.dat”));

Escribir

escribir.writeObject(objeto);

Cerrar flujo

escribir.close( );

M.S.C. Raúl Mora Reyes

Page 6: 6 Flujos y Archivos

PROCESO: LECTURA

Abrir flujo para lectura

ObjectInputStream leer = new ObjectInputStream( new FileInputStream(“Agenda.dat”));

Leer

objeto = leer.readObject( );

Cerrar flujo

leer.close( );

M.S.C. Raúl Mora Reyes

Page 7: 6 Flujos y Archivos

EJEMPLO

M.S.C. Raúl Mora Reyes

Page 8: 6 Flujos y Archivos

Persona

-nombre : String -email : String

+get... +set...

Serializable

implements

M.S.C. Raúl Mora Reyes

Page 9: 6 Flujos y Archivos

M.S.C. Raúl Mora Reyes

Page 10: 6 Flujos y Archivos

M.S.C. Raúl Mora Reyes

Page 11: 6 Flujos y Archivos

NOTAS

El nombre del archivo debe ser idéntico al crear el flujo de entrada como el de salida ( en el ejemplo Agenda.dat)

Observa que en el ciclo donde se leen los objetos del archivo se lee un objeto, posteriormente se hace una conversión al tipo de objeto específico (en el ejemplo Persona), se almacena en una referencia del mismo tipo (per) y posteriormente se compara contra null, para saber si aún hay objetos en el archivo.

M.S.C. Raúl Mora Reyes