Yuav ua li cas Serialize Ib Lub Hom Phiaj hauv Java: 8 Kauj Ruam (nrog Duab)

Cov txheej txheem:

Yuav ua li cas Serialize Ib Lub Hom Phiaj hauv Java: 8 Kauj Ruam (nrog Duab)
Yuav ua li cas Serialize Ib Lub Hom Phiaj hauv Java: 8 Kauj Ruam (nrog Duab)

Video: Yuav ua li cas Serialize Ib Lub Hom Phiaj hauv Java: 8 Kauj Ruam (nrog Duab)

Video: Yuav ua li cas Serialize Ib Lub Hom Phiaj hauv Java: 8 Kauj Ruam (nrog Duab)
Video: Koj Hais Dab Tsi?/Suabci Kwm & Ab Meej Ham/Official MV 2023 2024, Tej zaum
Anonim

Thaum koj txheeb xyuas cov khoom hauv Java, koj hloov cov ntaub ntawv mus rau hauv byte ntws uas tom qab ntawd hloov rov qab rau hauv daim ntawv theej ntawm cov ntaub ntawv qub. Yog tias lub suab no tsis meej pem, xav txog kev ua raws cov lus hauv qab no. Koj tab tom ua haujlwm ntawm daim ntawv thiab tom qab ntawd khaws nws rau hauv koj lub hard drive. Koj yog, hauv kev hais lus, ua cov ntaub ntawv kom koj tuaj yeem khaws cov ntawv theej tom qab. Serialization ua rau kev xa cov ntaub ntawv ntawm tes hauj lwm yooj yim dua thiab muaj txiaj ntsig ntau dua.

Nws yog ib qho tseem ceeb uas koj nkag siab txog cov hauv paus ntawm Java ua ntej ua cov khoom. Yog tias koj tau siv cov lus programming xws li Pascal thiab cov ntawv qub ntawm C, koj yuav paub tias yam tsis muaj kev ua haujlwm txuas ntxiv, tus programmer yuav tsum tsim cais cov ntawv I/O cais kom khaws thiab thauj cov ntaub ntawv. Lub hom phiaj ua ntu zus hauv Java hla dhau los tsim cov ntawv sau no kom khaws cov ntaub ntawv, txuag lub sijhawm thiab cov phiaj xwm tus nqi. Kab lus hauv qab no muaj cov kauj ruam txhawm rau txheeb xyuas cov khoom hauv Java. Cov qauv piv txwv hauv kab lus no tau siv los ntawm Java Developers Almanac 1.4.

Cov kauj ruam

Serialize ib yam khoom hauv Java Kauj Ruam 1
Serialize ib yam khoom hauv Java Kauj Ruam 1

Kauj Ruam 1. Qhib Java cov cuab yeej coding uas xav tau cov ntawv txuas lossis tsim ib qho los ntawm kos

Serialize ib yam khoom hauv Java Kauj Ruam 2
Serialize ib yam khoom hauv Java Kauj Ruam 2

Kauj Ruam 2. Xaiv yam khoom hauv Java uas koj xav kom ua raws

Hauv qhov piv txwv no, peb yuav hu qhov khoom ntawd "MyObject."

Serialize ib yam khoom hauv Java Kauj Ruam 3
Serialize ib yam khoom hauv Java Kauj Ruam 3

Kauj Ruam 3. Pab kom cov khoom sib txuas hauv Java los ntawm kev ua MyObject chav kawm los siv java.io. Serialize interface

Tsuas yog ntxiv cov kab ntawv hauv qab no thaum pib ntawm txoj cai, hloov "chav kawm pej xeem MyObject" line.public chav kawm MyObject siv java.io. Serializable

Serialize ib yam khoom hauv Java Kauj Ruam 4
Serialize ib yam khoom hauv Java Kauj Ruam 4

Kauj Ruam 4. Tam sim no koj lub hom phiaj tuaj yeem siv tau, uas txhais tau tias nws tuaj yeem sau los ntawm cov dej ntws tawm, zoo li no:

  • Cov kab hauv qab no piav qhia yuav ua li cas sau MyObject (lossis ib yam khoom uas tuaj yeem tsim tau) rau cov ntawv lossis disk.

    sim {

    // Serialize cov ntaub ntawv kwv rau cov ntaub ntawv

    ObjectOutputStream tawm = tshiab ObjectOutputStream (FileOutputStream tshiab ("MyObject.ser"));

    out.writeObject (kwv);

    tawm.close ();

    // Serialize cov ntaub ntawv kwv mus rau byte array

    ByteArrayOutputStream bos = tshiab ByteArrayOutputStream ();

    tawm = tshiab ObjectOutputStream (bos);

    out.writeObject (kwv);

    tawm.close ();

    // Tau txais cov bytes ntawm cov khoom sib txuas

    byte buf = bos.toByteArray ();

    } ntes (IOException e) {

    }

Serialize Ib Yam Khoom hauv Java Kauj Ruam 5
Serialize Ib Yam Khoom hauv Java Kauj Ruam 5

Kauj Ruam 5. Nws tuaj yeem nyeem zoo li no:

sim {FileInputStream qhov rooj = tshiab FileInputStream ("name_of_file.sav"); ObjectInputStream nyeem ntawv = ObjectInputStream tshiab (qhov rooj); MyObject x = tshiab MyObject (); x = (MyObject) nyeem ntawv.nextObject ();} ntes (IOException e) {e.printStackTrace ();}

Serialize ib yam khoom hauv Java Kauj Ruam 6
Serialize ib yam khoom hauv Java Kauj Ruam 6
Serialize ib yam khoom hauv Java Kauj Ruam 7
Serialize ib yam khoom hauv Java Kauj Ruam 7

Kauj Ruam 6. Ua cov txheej txheem cov lej hauv cov haujlwm Java kom paub tseeb tias nws ua haujlwm tau zoo (yeem)

Khiav a. Jar Java File Step 9
Khiav a. Jar Java File Step 9

Kauj Ruam 7. Txuag thiab kaw cov khoom sib txuas hauv Java

Lub tswv yim

  • Kev txhim kho cov lej hauv Java SE Cov Khoom Siv Txhim Kho 6 tso cai rau koj siv ObjectStreamClass nrhiav txhua txoj hauv kev los daws cov khoom hauv chav kawm uas tsis tuaj yeem siv tau.
  • Txhawm rau txhim kho kev nyeem thiab sau sijhawm hauv tsob ntoo loj, siv lo lus "hloov pauv" lo lus piv txwv piv txwv uas tsis xav tau kev ua haujlwm ntxiv. Qhov no yuav nce kev ua tau zoo uas koj tsis tau nyeem thiab sau cov ntaub ntawv tsis tsim nyog rau hauv txheej txheem txheej txheem.

Lus ceeb toom

  • Java los nrog qhov hloov tshiab ntawm lawv cov khoom tsim tawm ntawm yuav luag txhua xyoo. Cov ntawv tshiab suav nrog kev hloov kho tshiab thiab hloov pauv li cas koj tuaj yeem ua raws lub hom phiaj hauv Java. Yog li ntawd, nws yog ib qho tseem ceeb los saib xyuas cov kev hloov pauv hauv cov version uas koj siv.
  • Thaum serializing khoom, koj tsis tuaj yeem encrypt cov ntaub ntawv ntws. Yog li, koj yuav tsum tso siab rau lwm cov ntawv thov lossis txheej txheem kev thauj mus los hauv network los tiv thaiv cov ntaub ntawv, yog tias tsim nyog.
  • Tam sim no tsis muaj kev xaiv uas tso cai rau koj sau cov khoom mus rau cov ntaub ntawv nkag mus tau yooj yim. Hloov chaw, koj tuaj yeem siv Byte Array cov tswv yim tso zis ntws los ua tus muab tso rau qhov uas nyeem thiab sau cov khoom. Txawm li cas los xij, nco ntsoov tag nrho cov khoom nyob hauv Byte Array kwj lossis cov txheej txheem yuav ua tsis tiav.

Pom zoo: