gtemata.com

Cum de a serializa un obiect în Java

Când serializați un obiect din Java, convertiți datele în grupuri de octeți și apoi le convertiți înapoi la copia datelor originale. Dacă acest lucru pare să creeze confuzie, gândiți-vă la serializare în următorii termeni. Lucrați pe un document și salvați o copie pe hard disk. Sunteți, ca să spunem așa, serializând datele, astfel încât să puteți recupera o copie mai târziu. Serializarea permite transferul de date în rețea mult mai simplu și mai eficient. Este important să înțelegeți elementele de bază ale Java înainte de serializarea unui obiect. Dacă ați folosit limbaje de programare, cum ar fi Pascal sau versiuni mai vechi ale C, îl va întâlni fără serializare, un programator trebuie să creeze un separate pentru fișiere / O I de text pentru a stoca și datele de sarcină. Următorul articol conține pașii pentru a serializa un obiect din Java. Codul de probă din acest articol este folosit cu ajutorul programului Java Developers Almanac 1.4.

paşi

Imaginea intitulată Serializați un obiect în Java Pasul 1
1
Deschideți obiectul de codare Java care necesită serializare sau creați unul de la zero.
  • Imaginea intitulată Serializați un obiect în Java Pasul 2
    2
    Selectați obiectul din Java pe care doriți să-l serializați. În acest exemplu, vom numi acest obiect "MyObject".
  • Imaginea intitulată Serializați un obiect în Java Pasul 3
    3
    Activați serializarea obiectelor din Java, făcând clasa MyObject să moștenească clasa java.io.Serialize. Pur și simplu adăugați următoarea linie de cod la începutul clasei, înlocuind linia "clasa publica MyObject". clasa publică MyObject implementează java.io.Serializable.
  • Imaginea intitulată Serializați un obiect în Java Pasul 4
    4


    Acum, obiectul dvs. este serializabil, aceasta înseamnă că poate fi scris ca un flux de ieșire, cum ar fi:
  • Următoarele rânduri de cod ilustrează modul în care se scrie MyObject (sau orice obiect serializabil) într-un fișier sau pe un disc.
    try {
    Serializați un obiect de date într-un fișier
    ObjectOutputStream out = ObjectOutputStream nou (noul FileOutputStream ("MyObject.ser")) -
    out.writeObject (obiect) -
    out.close () -

    Serializați un obiect într-o matrice de octeți
    ByteArrayOutputStream bos = nou ByteArrayOutputStream () -
    out = ObjectOutputStream (bos) nou -
    out.writeObject (obiect) -
    out.close () -

    // Obțineți octeții obiectului serializat
    octet [] buf = bos.toByteArray () -
    } captură (IOException e) {
    }
  • Imaginea intitulată Serializați un obiect în Java Pasul 5
    5
    Se poate citi astfel:încercați {FileInputStream door = fișierul FileInputStream nou ("name_of_file.sav") - ObjectInputStream cititor = new ObjectInputStream (usa) - MyObject x = new MyObject () - x = (MyObject) reader.nextObject () -} catch (IOException e) {e.printStackTrace () -}
  • Imaginea intitulată Serializați un obiect în Java Pasul 7
    6
    Rulați codul obiect serializat din programul Java pentru a vă asigura că funcționează (opțional).
  • 7
    Salvați și închideți obiectul serializat în Java.
  • Sfaturi

    • Îmbunătățirile de serializare în Java Kit SE Development 6 vă permit să utilizați metoda ObjectStreamClass lookupAny pentru a gestiona toate clasele de obiecte non-serializabile.
    • Pentru a îmbunătăți timpul de citire și de scriere într-un copac de obiecte foarte mare, utilizați cuvântul cheie "tranzitoriu" pentru a instanțiza variabilele care nu necesită serializare. Acest lucru va crește performanța, deoarece nu mai citiți și scrieți date inutile în procesul de serializare.

    Avertismente

    • Java oferă o nouă versiune a kit-ului dezvoltatorului lor aproximativ în fiecare an. Noile versiuni includ îmbunătățiri și modificări privind modul în care un obiect poate fi serializat în Java. Prin urmare, este important să monitorizați modificările din versiunea pe care o utilizați.
    • Când serializați obiecte, nu puteți cripta fluxurile. Prin urmare, va trebui să vă bazați pe alte aplicații sau pe un proces de transmisie într-o rețea secundară pentru a vă proteja datele, dacă este necesar.
    • În prezent nu există opțiune de scriere a obiectelor într-un fișier de acces aleatoriu. În schimb, puteți utiliza fluxul de intrare al arhivelor Byte ca bază de citire și scriere a obiectelor. Cu toate acestea, asigurați-vă că întregul obiect se află în fluxul Byte Array, altfel procesul va eșua.
    Afișați mai multe ... (4)
    Distribuiți pe rețelele sociale:

    înrudit