Your SlideShare is downloading. ×
0
Serializacion
Serializacion
Serializacion
Serializacion
Serializacion
Serializacion
Serializacion
Serializacion
Serializacion
Serializacion
Serializacion
Serializacion
Serializacion
Serializacion
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Serializacion

348

Published on

¿Qué métodos se deben implementar en la clase donde se usa la interfaz Serializable?

¿Qué métodos se deben implementar en la clase donde se usa la interfaz Serializable?

Published in: Education
11 Comments
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
348
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
11
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Integrantes:• Natalia Cerón A.• Misahael Fernández M.
  • 2. ObjetivoAnalizar la serialización de objetos en java mediante lainvestigación en la web para conocer la utilidad de lasclases ObjectOutputStream y ObjectInputStream.
  • 3. IntroducciónPara que un objeto pueda ser almacenado en el disco,es necesario que la clase a la que pertenece seaserializable. Esta característica la poseen todasaquellas clases que implementen la interfazjava.io.Serializable.La interfaz Serializable no contiene ningún método,basta que una clase la implemente para que susobjetos puedan ser serializados por la máquina virtualy por tanto ser almacenados en el disco.
  • 4. Flujos de Datos•Existen dos tipos de flujos dedatos: los binarios o de bytes, ylos de texto.•En los flujos de datos de bytesla información que fluye está enformato binario.•Los flujos de datos de bytes sesubdividen en flujos de datos deentrada y flujos de datos desalida. •Los primeros serían flujos que nos proporcionan datos, es decir, entradas de nuestro programa. •Los segundos serían flujos en los cuales nuestro programa escribe datos, es decir, salidas de nuestro programa.
  • 5. Flujos de Salida de Bytes•En la figura podemos ver lajerarquía de los flujos de salidade bytes de Java.•La clase padre de todos losflujos de salida de Java esOutputStream . Se trata de unaclase abstracta (por tanto novamos a poder crear objetos deella porque su funcionalidad está"incompleta") que representaun flujo de datos de salidabinario cualquiera.Sus métodos son los siguientes:close(): cierra el flujo de datos.flush(): sincroniza este flujo de datos con el dispositivo al cualse están escribiendo los datos.write(byte[] b): escribe el array b de bytes que se le pasa comoargumento al flujo de salida.write(byte[] b, int off, int len): escribe len bytes del array b alflujo de salida, empezando a escribirlos en el offset indicadopor off .abstract void write(int b): escribe 1 byte al flujo de salida.
  • 6. Subclases de OutputStreamByteArrayOutputStreamFileOutputStream: flujo de salida para la escritura dedatos a un objeto de tipo File .FilterOutputStreamObjectOutputStream: encapsula otro objeto de tipoOutputStream y permite escribir objetos Javacompletos al flujo de datos de salida representadopor el OutputStream correspondiente.PipedOutputStream
  • 7. Flujos de Entrada de BytesEn la figura podemos ver lajerarquía de los flujos de entradade bytes de Java.La clase padre de todos los flujosde entrada de Java esInputStream. Se trata de unaclase abstracta que representaun flujo binario de datos desalida.Sus métodos son los siguientes:close(): cierra el flujo de datos.int available(): devuelve una estimación delnúmero de bytes que se pueden leer de este flujode datos de entrada sin producirse un bloqueo.int read(): lee un único byte.abstract int write(byte[] b, int off, int len): leehasta len bytes del flujo de entrada y los almacenaen el array b , empezando a leer los datos en eloffset indicado por off .skip(long n): ignora los próximos n bytes del flujode entrada.
  • 8. Subclases de InputStreamLas clases hijas más comunes sonByteArrayInputStream , FileInputStream ,FilterInputStream , InputStream , ObjectInputStreamy PipedInputStream . Las más empleadas sonObjectInputStream y DataInputStream.ObjectInputStream se emplea para leer objetos de unflujo de entrada.
  • 9. ObjectOutputStreamSerializa al objeto, para esto es necesario disponer deFileOutputStream asociado al fichero donde se va arealizar la escritura.Una vez hecho esto, para poder escribir en el archivoel objeto, se usa el comando writeObject(Object b).
  • 10. Uso del ObjectOutputStreamalumnos.add(newAlumno(txtid.getText(),txtnombre.getText(),txtnrc.getText(),txtasignatura.getText()));txtid.setText(""); txtnombre.setText(""); txtnrc.setText(""); txtasignatura.setText(""); try { ser=new ObjectOutputStream(new FileOutputStream("Registro.txt")); ser.writeObject(alumnos); ser.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(rootPane, ex.getMessage()); }
  • 11. ObjectInputStreamRealiza la reconstrucción del objeto almacenado en elfichero, se debe tener un objeto FileInputStream paraasociado al fichero de donde vamos a sacar lainformación.Mediante el método readObject(), se puede obtenerel objeto que tiene ese fichero
  • 12. Uso del ObjectInputStreamObject x; try { des= new ObjectInputStream(new FileInputStream("Registro.txt")); x = des.readObject(); if(x!=null) { alumnos=(ArrayList<Alumno>)x; } des.close(); } catch (IOException ex) { //Logger.getLogger(Serializar.class.getName()).log(Level.SEVERE, null, ex); } catch (ClassNotFoundException ex) { //Logger.getLogger(Serializar.class.getName()).log(Level.SEVERE, null, ex); }
  • 13. ConclusionesEn esta presentación se observa la importancia delalmacenamiento de datos de modo persistente en losprogramas Java. También puede usarse para obtenerentrada del usuario usando la consola, aunque en laactualidad es mucho más común emplear interfacesgráficas para interactuar con el usuario .
  • 14. http://www.sc.ehu.es/sbweb/fisica//cursoJava/fundamentos/archivos/objetos.htmhttp://www.redeszone.net/2012/02/06/curso-de-java-entrada-y-salida-con-ficheros-primeros-ejemplos/http://www.javahispano.org/storage/contenidos/serializacion.pdf

×