Com serialitzar un objecte a Java: 8 passos (amb imatges)

Taula de continguts:

Com serialitzar un objecte a Java: 8 passos (amb imatges)
Com serialitzar un objecte a Java: 8 passos (amb imatges)

Vídeo: Com serialitzar un objecte a Java: 8 passos (amb imatges)

Vídeo: Com serialitzar un objecte a Java: 8 passos (amb imatges)
Vídeo: Inkscape . Curvas Bezier. Corazon 2024, Maig
Anonim

Quan serialitzeu un objecte a Java, convertiu les dades en fluxos de bytes que després es convertiran de nou en una còpia de les dades originals. Si això sembla confús, penseu en la serialització en els termes següents. Esteu treballant en un document i deseu-lo al disc dur. A manera de parlar, esteu serialitzant les dades perquè pugueu recuperar aquesta còpia més endavant. La serialització facilita i eficaç la transferència de dades a les xarxes.

És important que entengueu els conceptes bàsics de Java abans de serialitzar un objecte. Si heu utilitzat llenguatges de programació com Pascal i versions anteriors de C, sabreu que sense la serialització d'objectes, un programador ha de crear un fitxer de text d'E / S independent per emmagatzemar i carregar dades. La serialització d'objectes a Java ignora la creació d'aquest fitxer de text per emmagatzemar dades, estalviant temps i costos de programació. L'article següent conté els passos per serialitzar un objecte a Java. El codi de mostra d’aquest article s’utilitza cortesia de The Java Developers Almanac 1.4.

Passos

Serialitzeu un objecte a Java Pas 1
Serialitzeu un objecte a Java Pas 1

Pas 1. Obriu l'objecte de codificació Java que requereix serialització o creeu-ne un des de zero

Serialitzar un objecte a Java Pas 2
Serialitzar un objecte a Java Pas 2

Pas 2. Seleccioneu l'objecte a Java que vulgueu serialitzar

En aquest exemple, anomenarem aquest objecte "El meu objecte".

Serialitzar un objecte a Java Pas 3
Serialitzar un objecte a Java Pas 3

Pas 3. Activeu la serialització d'objectes a Java fent que la classe MyObject implementi la interfície java.io. Serialize

Només cal afegir la següent línia de codi al principi del codi, substituint la línia "public class MyObject". La classe pública MyObject implementa java.io. Serializable

Serialitzar un objecte a Java Pas 4
Serialitzar un objecte a Java Pas 4

Pas 4. Ara el vostre objecte es pot serialitzar, això vol dir que es pot escriure mitjançant un flux de sortida, així:

  • Les línies de codi següents il·lustren com escriure MyObject (o qualsevol objecte serialitzable) en un fitxer o disc.

    provar {

    // Serialitzar l'objecte de dades a un fitxer

    ObjectOutputStream out = nou ObjectOutputStream (nou FileOutputStream ("MyObject.ser"));

    out.writeObject (objecte);

    out.close ();

    // Serialitzar l'objecte de dades a una matriu de bytes

    ByteArrayOutputStream bos = new ByteArrayOutputStream ();

    out = new ObjectOutputStream (bos);

    out.writeObject (objecte);

    out.close ();

    // Obteniu els bytes de l'objecte serialitzat

    byte buf = bos.toByteArray ();

    } catch (IOException e) {

    }

Serialitzar un objecte a Java Pas 5
Serialitzar un objecte a Java Pas 5

Pas 5. Es pot llegir així:

proveu {FileInputStream door = new FileInputStream ("name_of_file.sav"); ObjectInputStream lector = nou ObjectInputStream (porta); MyObject x = new MyObject (); x = (MyObject) reader.nextObject ();} catch (IOException e) {e.printStackTrace ();}

Serialitzar un objecte a Java Pas 6
Serialitzar un objecte a Java Pas 6
Serialitzar un objecte a Java Pas 7
Serialitzar un objecte a Java Pas 7

Pas 6. Executeu el codi d'objecte serialitzat dins del programa Java per assegurar-vos que funciona correctament (opcional)

Executeu un fitxer Java. Jar Pas 9
Executeu un fitxer Java. Jar Pas 9

Pas 7. Deseu i tanqueu l'objecte serialitzat a Java

Consells

  • Les millores de serialització del Java SE Development Kit 6 us permeten utilitzar ObjectStreamClass per buscar qualsevol mètode per gestionar qualsevol objecte de classe no serialitzable.
  • Per millorar els temps de lectura i escriptura en arbres d'objectes grans, utilitzeu la paraula clau "transitòria" per exemple, variables que no requereixen serialització. Això augmentarà el rendiment ja que ja no llegiu ni escriviu dades innecessàries al procés de serialització.

Advertiments

  • Java surt amb una nova versió del kit del seu desenvolupador gairebé cada any. Les noves versions inclouen actualitzacions i canvis en la manera de serialitzar un objecte a Java. Per tant, és important controlar els canvis en la versió que utilitzeu.
  • Quan es serialitzen objectes, no es poden xifrar fluxos de dades. Per tant, haureu de confiar en altres aplicacions o processos de transport de xarxa secundaris per protegir les dades, si cal.
  • Actualment no hi ha cap opció que us permeti escriure objectes en un fitxer d'accés aleatori. En lloc d'això, podeu utilitzar els fluxos de sortida d'entrada Byte Array com a marcador de posició des del qual llegir i escriure els objectes. Tanmateix, assegureu-vos que l'objecte sencer es troba al flux Byte Array o el procés fallarà.

Recomanat: