Visualizzazione dei risultati da 1 a 2 su 2

Discussione: JAVA serializzazione

  1. #1

    JAVA serializzazione

    Chi Sarebbe così cortese da spiegarmi qualcosa sulla serializzazione in JAVA, come funziona, come si usa?


    grazie a tutti!

  2. #2
    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.