PDA

Visualizza la versione completa : JAVA serializzazione


pardoree
05-07-2002, 17:01
Chi Sarebbe cosė cortese da spiegarmi qualcosa sulla serializzazione in JAVA, come funziona, come si usa?


grazie a tutti!

battlehorse
05-07-2002, 17:50
La serializzazione e' quel processo che trasforma un oggetto in un flusso di byte, e viceversa ricostruisce da un flusso di byte di un oggetto serializzato, l'oggetto vero e proprio, pronto per essere usato.

Un esempio di utilizzo e' il voler salvare un oggetto ( che contiene ad esempio le impostazioni di un programma ) su un file, oppure inviare un oggetto via rete per sfruttare la rmi ( remote method invocation ), oppure poter salvare ad esempio i numeri float e double come dati binari e non come stringhe, in modo da non perdere in precisione.

Per poter serializzare un oggetto devi implementare l'interfaccia Serializable, che comunque non definisce membri. Quindi basta aggiungere "implements Serializable" alla tua definizione di class.

Per scrivere e leggere oggetti puoi usare il flusso ObjectOutputStream e ObjectInputStream. I costruttori sono :

ObjectOutputStream(OutputStream flussoOut) throws IOException

ObjectInputStream(InputStream flussoIn) throws IOException

Una volta creati questi flusso puoi scriverci dentro oggetti usando il metodo

writeObject(Object oggetto_da_scrivere)

e leggere un oggetto con

Object readObject()

Occhio che dopo il read devi effettuare un cast sul tipo di oggetto preciso che hai serializzato.

Un esempio breve :

mioOggetto mio = new mioOggetto();
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("pippo.dat"));
oos.writeObject(mio);
oos.flush();
oos.close();

ovviamente il discorso e' piu' complesso e i flussi hanno anche molti altri metodi, ma la sostanza e' questa.

Loading