Archivos Binarios Usando Serializable. Introducción Utilizar archivos binarios nos ayuda a guardar y leer más fácilmente los datos de archivos. Pero como.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 13 Ing. Ronald Criollo.
Advertisements

Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
Ayudantía Pre-Actividad 5 Multimedios. Ayudantía Pre-Actividad 5 (1) creación de varias clases, y composición (2) manejo de threads (3) manejo de excepciones.
Archivos de Texto. Introducción Los archivos son una secuencia de bits que se guarda en el disco duro. La ventaja de utilizar archivos es que los datos.
Archivos Binarios. Introducción En clase ya vimos el uso de archivos de texto en Java, pero el uso de archivos es mucho más poderoso que eso, al utilizar.
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME RMS Ing. Ronald Criollo.
EXCEPCIONES UNIDAD 5.
Programación Interactiva Manejo de Excepciones
INSTITUTO TECNOLOGICO DE MINATITLAN
Unidad 1. Manejo de ficheros
Archivos Implementar un método que lea una secuencia de números enteros de un archivo y compute la cantidad de elementos leídos.
2.4 Construcción de un TAD a partir de otro.
RMI (Remote Method Invocation)
PROGRAMACIÓN ORIENTADA A OBJETOS
Archivos Contenido: Archivos de Texto Archivos de Acceso Aleatorio
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Manejo de excepciones en Java
Curso Programación en Java
Práctica III: Java RMI con Serialización y Activation Framework
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CINCO CONSOLE.
Tema 6: Clases Antonio J. Sierra.
Igor Santos Grueiro. Ahora tenemos datos y datos …
1 Streams en Java Agustín J. González ELO Generalidades Un Stream es simplemente una fuente o destino de bytes. Los streams más comunes son los.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter N - 1 Capitulo 12 Archivos de Ingreso y Salida.
1 TEMA 5. Seguridad en Java 1.Introducción a los Controladores de Seguridad 2.Decidir qué Métodos Sobreescribir del SecurityManager 3.Escribir un Controlador.
Archivos y Búsqueda Secuencial
FUNCIÓN IGUAL (Lo que entra igual (=) a lo que sale)
ARCHIVOS Y CONEXIÓN A BASE DE DATOS. FileInputStream: Clase que representa ficheros de texto accedidos en orden secuencial, byte a byte. FileWriter: Clase.
Manejo de Excepciones Agustín J. González ELO329.
Clase Teórica No. 4 Programación IV
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
1 Programación Interactiva Archivos Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle.
7. Interfaces Herencia múltiple Interfaces Comparable y Comparator
Invocación de Métodos Remotos RMI: Remote Method Invocation
1 Persistencia en Java Agustín J. González ELO-329.
Entrada y Salida Java. Clase File La clase File proporciona mucha informacion relacionada con archivos y con la obtencion de informacion basica sobre.
Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Programación Orientada a Objetos
Entrada / Salida. Java adopta de Unix el concepto de stream Un stream es un flujo de datos (secuencia de bytes) que va de una fuente a un destino. Desde.
El lenguaje de programación Java
RMI Remote Method Invocation 2da. Clase del 19 de Junio
USO DE EXCEPCIONES EN JAVA LSC. Natalia Rodríguez Castellón.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
1 Unidad IV Archivos en Java y C++ M.C. Juan Carlos Olivares Rojas.
Manejo de excepciones en Java ELO329: Diseño y Programación Orientados a Objetos Agustín J. González.
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
Unidad III Manejo de Excepciones en Java y C++
Excepciones Unidad 5.
Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila.
1 Manejo de Excepciones y otros Agustín J. González ELO-329.
PAQUETES Un paquete es un conjunto de clases, interfaces y subpaquetes relacionados. El paquete define un ámbito de visibilidad: los miembros que no tienen.
Java.
1 Streams y Persistencia en Java Agustín J. González ELO-329.
Detalles Generales sobre Java
INGENIERIA EN SISTEMAS COMPUTACIONALES ASIGNATURA: PROGRAMACION ORIENTADA A OBJETOS ALUMNO: JAVIER MARTINEZ MARTINEZ.
¿Qué son? – tipos – manejo - ejemplos
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
Instituto Tecnológico Superior de Libres Ingeniería en Sistemas Computacionales Segundo semestre Materia: Programación Orientada a Objetos Asesora: Ing.
Representación externa de datos y Serialización Marisol García Valls Arquitecturas Distribuidas 2º Ingeniero de Telecomunicación (Telemática) Departamento.
Manejo de archivos de texto.  Unidad fundamental de almacenamiento dentro del ámbito de la informática. Alberga un conjunto de datos que es posible leer,
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Archivos de Propiedades
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Persistencia y Serialización en Java con Archivos
Disseny de la persistència Serialització
Disseny de la persistència Serialització
Streams y Persistencia en Java
Transcripción de la presentación:

Archivos Binarios Usando Serializable

Introducción Utilizar archivos binarios nos ayuda a guardar y leer más fácilmente los datos de archivos. Pero como pudimos ver en el ejercicio de la clase anterior, si tenemos un objeto de tipo Persona tenemos que guardar cada variable por separado. Esto podría parecer sencillo, pero cuando manejamos una gran cantidad de objetos el código se alarga y se vuelve más difícil de entender y de mantener. Por lo tanto tenemos que guardar objetos a archivos.

Archivos Binarios Para guardar un objeto en un archivo binario el objeto debe implementar la interfaz Serializable. La interfaz Serializable tiene un conjunto de métodos con los que podemos guardar y leer objetos en archivos binarios. Los dos métodos más importantes que vamos a utilizar son writeObject(ObjectOutputStream out) readObject(ObjectInputStream in)

Dentro de estos métodos debemos poner el código que guardaría todas las variables de el objeto. Es decir, si el objeto tiene un int edad, dentro de el código de writeObject debemos poner out.writeInt(edad); Es decir, al mandar llamar los métodos estamos guardando o leyendo todas las variables del objeto de un archivo de la misma manera que habíamos visto antes. Puedes aprender más sobre la interfaz Serializable en la siguiente página: Serializable Archivos Binarios

Cambios Necesarios 1.Debemos Importar las librerías de IO en la clase que queremos guardar import java.io.*; 2.Debemos hacer que la clase implemente Serializable public class Persona implements Serializable 3.Ahora debemos añadir los dos métodos que manejan archivos public void writeObject(ObjectOutputStream out)throws IOException public void readObject(ObjectInputStream in)throws IOException, ClassNotFoundException; 4.Y por último debemos escribir el método que guarda y que lee.

Vamos a ver los métodos más a fondo public void writeObject(ObjectOutputStream out)throws IOException Al final tenemos que poner throws IOException, esto es necesario porque sino el programa no compila. Más adelante vamos a ver todo sobre las excepciones. El objeto que escribimos a un archivo es el mismo con el que llamemos el método, es decir: Persona p = new Persona(Juan); p.writeObject(out); El método anterior guarda p en un archivo El método recibe un ObjectOutputStream como parámetro, tenemos que pasarle como parámetro el mismo objeto que hicimos para escribir archivos binarios. writeObject

Vamos a ver los métodos más a fondo public void readObject(ObjectInputStream in)throws IOException, ClassNotFoundException Al final tenemos que poner throws IOException, esto es necesario porque sino el programa no compila. Tenemos que llamar el método con el objeto que queremos modificar: Persona p = new Persona(); //La estoy creando en blanco p.readObject(in); //Utilizo readObject para leerla de un archivo p.getName(); //Me devuelve Juan El método anterior lee una Persona de un archivo y los guarda en el objeto p. El método recibe un ObjectInputStream como parámetro, tenemos que pasarle como parámetro el mismo objeto que hicimos para leer archivos binarios. readObject

Ejemplo de Serializable (Clase Auto) La clase debe implementar Serializable El método es void y lanza IOException Utilizamos los métodos que ya conocemos para escribir y leer del archivo. import java.io.*; public class Auto implements Serializable{.... //Poner todos los métodos y los.... //accessors y mutators. public void writeObject(DataOutputStream out) throws IOException{ out.writeUTF( getMarca() ); out.writeInt( getAnio() ); out.writeDouble( getRendimiento() ); } public void readObject(DataInputStream in) throws IOException, ClassNotFoundException{ setMarca(in.readUTF()); setAnio(in.readInt()); setRendimiento(in.readDouble()); } Debemos importar java.io.*

Ejemplo de Serializable (Clase Auto) Para leer: DataInputStream fileIn = new DataInputStream( new FileInputStream(datos.dat)); Auto a = new Auto(); try { a.readObject(fileIn); } catch (IOException ioe) { } catch (ClassNotFoundException cnfe) { } Para escribir: DataOutputStream fileOut = new DataOutputStream( new FileOutputStream(datos.dat)); Auto a = new Auto(marca, anio, rendimiento); try { a.writeObject(fileOut); } catch (IOException ioe) { } Declaramos el objeto para leer Este método llama al método que escribimos antes que lee el auto y la guarda en a. Este método manda llamar el método que escribimos antes, que guarda el auto en el archivo que abrimos (datos.dat)

Un pequeño ejercicio: ¿Cómo implementarías Serializable en la clase Alumno que utilizamos en la presentación pasada? DataInputStream