Hoe om 'n voorwerp in Java te serialiseer: 8 stappe (met foto's)

INHOUDSOPGAWE:

Hoe om 'n voorwerp in Java te serialiseer: 8 stappe (met foto's)
Hoe om 'n voorwerp in Java te serialiseer: 8 stappe (met foto's)

Video: Hoe om 'n voorwerp in Java te serialiseer: 8 stappe (met foto's)

Video: Hoe om 'n voorwerp in Java te serialiseer: 8 stappe (met foto's)
Video: Учебное пособие по Inkscape: трехмерный векторный треугольник 2024, Mei
Anonim

As u 'n voorwerp in Java reekseer, omskep u die data in byte -strome wat dan later omskep word in die kopie van die oorspronklike data. As dit verwarrend klink, dink aan die serialisering in die volgende terme. U werk aan 'n dokument en stoor dit dan op u hardeskyf. U serialiseer die gegewens, sodat u die kopie later kan ophaal. Serialisering maak die oordrag van data op netwerke baie makliker en doeltreffender.

Dit is belangrik dat u die basiese beginsels van Java verstaan voordat u 'n voorwerp in 'n reeks plaas. As u programmeertale soos Pascal en ouer weergawes van C gebruik het, sal u weet dat 'n programmeerder 'n aparte I/O -tekslêer moet skep om data op te slaan en te laai sonder om die voorwerp te serialiseer. Voorwerpreeks in Java omseil die skep van hierdie tekslêer om data te stoor, bespaar tyd en programmeerkoste. Die volgende artikel bevat die stappe om 'n voorwerp in Java in 'n reeks op te stel. Die voorbeeldkode in hierdie artikel word gebruik met vergunning van The Java Developers Almanac 1.4.

Stappe

Serialiseer 'n voorwerp in Java Stap 1
Serialiseer 'n voorwerp in Java Stap 1

Stap 1. Maak die Java -koderingsvoorwerp oop wat benodig word, of skep een van nuuts af

Serialiseer 'n voorwerp in Java Stap 2
Serialiseer 'n voorwerp in Java Stap 2

Stap 2. Kies die voorwerp in Java wat u wil reeksvolg

In hierdie voorbeeld noem ons die voorwerp "MyObject."

Serialiseer 'n voorwerp in Java Stap 3
Serialiseer 'n voorwerp in Java Stap 3

Stap 3. Aktiveer voorwerp -serialisering in Java deur die MyObject -klas te maak om die java.io. Serialize -koppelvlak te implementeer

Voeg net die volgende kode reël aan die begin van die kode by en vervang die "openbare klas MyObject" line.public klas MyObject implementeer java.io. Serializable

Serialiseer 'n voorwerp in Java Stap 4
Serialiseer 'n voorwerp in Java Stap 4

Stap 4. Nou kan u voorwerp in serie opgestel word, dit beteken dat dit deur 'n uitvoerstroom soos volg geskryf kan word:

  • Die volgende kode lyne illustreer hoe u MyObject (of 'n voorwerp wat in serie gestel is) na 'n lêer of skyf kan skryf.

    probeer {

    // Serialiseer data -voorwerp na 'n lêer

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

    out.writeObject (voorwerp);

    out.close ();

    // Serialiseer data -voorwerp na 'n byte -skikking

    ByteArrayOutputStream bos = nuwe ByteArrayOutputStream ();

    out = nuwe ObjectOutputStream (bos);

    out.writeObject (voorwerp);

    out.close ();

    // Kry die grepe van die geserialiseerde voorwerp

    byte buf = bos.toByteArray ();

    } vang (IOException e) {

    }

Serialiseer 'n voorwerp in Java Stap 5
Serialiseer 'n voorwerp in Java Stap 5

Stap 5. Dit kan so gelees word:

probeer {FileInputStream deur = nuwe FileInputStream ("name_of_file.sav"); ObjectInputStream -leser = nuwe ObjectInputStream (deur); MyObject x = nuwe MyObject (); x = (MyObject) reader.nextObject ();} catch (IOException e) {e.printStackTrace ();}

Serialiseer 'n voorwerp in Java Stap 6
Serialiseer 'n voorwerp in Java Stap 6
Serialiseer 'n voorwerp in Java Stap 7
Serialiseer 'n voorwerp in Java Stap 7

Stap 6. Voer die geserialiseerde voorwerpkode in die Java -program uit om seker te maak dat dit effektief werk (opsioneel)

Begin 'n. Jar Java -lêer Stap 9
Begin 'n. Jar Java -lêer Stap 9

Stap 7. Stoor en sluit die geserialiseerde voorwerp in Java

Wenke

  • Met serialiseringsverbeterings in die Java SE Development Kit 6 kan u die ObjectStreamClass-metode gebruik om enige nie-reeks-voorwerpe te hanteer.
  • Om die lees- en skryftyd in groot voorwerpbome te verbeter, gebruik die 'kortstondige' sleutelwoord, byvoorbeeld veranderlikes wat nie serialisering benodig nie. Dit verhoog die prestasie deurdat u nie meer onnodige data in die reeksproses lees en skryf nie.

Waarskuwings

  • Java kom byna jaarliks met 'n nuwe weergawe van hul ontwikkelaarstel. Nuwe weergawes sluit in opgraderings en veranderings in hoe u 'n voorwerp in Java kan serialiseer. Daarom is dit belangrik om die veranderinge in die weergawe wat u gebruik te monitor.
  • As u voorwerpe in 'n reeks volg, kan u datastrome nie enkripteer nie. Daarom moet u, indien nodig, staatmaak op ander toepassings of sekondêre netwerkvervoerprosesse om die data te beskerm.
  • Daar is tans geen opsie waarmee u voorwerpe na 'n ewekansige lêer kan skryf nie. U kan in plaas daarvan die Byte Array -invoeruitvoerstrome gebruik as 'n plekhouer waaruit u die voorwerpe kan lees en skryf. Maak egter seker dat die hele voorwerp in die stroomstroom is, anders kan die proses misluk.

Aanbeveel: