Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Java Serialization
2
Il problema della persistenza
Persistenza dei dati quando l’applicazione non è running: salvataggio della struttura interna di un oggetto. E’ un problema ricorsivo! Serializzazione: trasformazione di oggetti in “stream di dati” (seriali). Il JDK prevede delle API per la serializzazione, e la maggior parte delle sue classi sono serializzabili.
3
persistenza selettiva
Le variabili dichiarate transient non vengono serializzate.
4
Supporto di JDK alla persistenza
ObjectOutputStream: converte oggetti dalla rappresentazione in memoria a quella serializzata. ObjectInputStream: converte oggetti dalla rappresentazione serializzata a quella in memoria. Serializable: interfaccia senza metodi che marca una classe come seralizzabile. Externalizable: interfaccia con metodi (sottoclasse di Serializable) che fornisce maggior controllo sul processo di serializzazione. ObjectInputValidation: interfaccia per verificare la corretta decodifica di un oggetto.
5
Principali Metodi di ObjectOutputstream
ObjectOutputStream(OutputStream) costruttore writeObject(Object) serializza Object close() flush() reset() writeInt(int) writeFloat(float) writeDouble(double)
6
Principali Metodi di ObjectInputstream
ObjectInputStream(InputStream) costruttore Object readObject() deserializza Object available() dice quanti bytes ci sono da leggere int readInt() float writeFloat() double writeDouble() registerValidation(ObjectValidation,int)
7
Esempio –Writer 1/2 package serialDemo; import java.io.*;
import java.util.*; public class Writer { HashMap hm=new HashMap(); public Writer() { System.out.println("WRITER "); for (int k=1;k<=10;k+=2) { String key=new String("a"+k); Integer ik=new Integer(k); hm.put(key,ik); } System.out.println(hm.size()); Iterator i=hm.keySet().iterator(); while (i.hasNext()) { Object o=i.next(); System.out.println(o.toString()+" #"+hm.get(o).toString());
8
Esempio –Writer 2/2 FileOutputStream ofs=null;
ObjectOutputStream oos=null; try { ofs=new FileOutputStream("serialiazidStream.txt"); oos=new ObjectOutputStream(ofs); oos.writeObject(hm); } catch (IOException ex) { ex.printStackTrace(); // public static void main(String[] args) { Writer writer = new Writer();
9
Esempio –Reader 1/2 package serialDemo; import java.io.*;
import java.util.*; public class Reader { HashMap hm=null; // public static void main(String[] args) { Reader reader = new Reader(); }
10
Esempio –Reader 2/2 public Reader() {
System.out.println("READER "); FileInputStream ofs=null; ObjectInputStream oos=null; try { ofs=new FileInputStream("serialiazidStream.txt"); oos=new ObjectInputStream(ofs); hm=(HashMap)oos.readObject(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); }catch (IOException ex) { ex.printStackTrace(); System.out.println(hm.size()); Iterator i=hm.keySet().iterator(); while (i.hasNext()) { Object o=i.next(); System.out.println(o.toString()+" #"+hm.get(o).toString());
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.