Ko serializirate predmet v Javi, podatke pretvorite v bajtne tokove, ki se nato kasneje pretvorijo nazaj v kopijo izvirnih podatkov. Če se to sliši zmedeno, o naslednjih izrazih razmislite o serializaciji. Delate na dokumentu in ga nato shranite na trdi disk. Tako rekoč serializirate podatke, tako da lahko to kopijo pozneje pridobite. Serializacija omogoča prenos podatkov v omrežjih veliko lažje in učinkoviteje.
Pomembno je, da pred serializacijo predmeta razumete osnove Jave. Če ste uporabljali programske jezike, kot sta Pascal in starejše različice C, boste vedeli, da mora programer brez serializacije objekta ustvariti ločeno besedilno datoteko V/I za shranjevanje in nalaganje podatkov. Serizacija objektov v Javi obide ustvarjanje te besedilne datoteke za shranjevanje podatkov, prihrani čas in stroške programiranja. Naslednji članek vsebuje korake za serializacijo predmeta v Javi. Vzorčna koda v tem članku je uporabljena z uporabo Java Developer Almanac 1.4.
Koraki
Korak 1. Odprite objekt kodiranja Java, ki zahteva serijsko nastavitev, ali ga ustvarite iz nič
Korak 2. Izberite predmet v Javi, ki ga želite serijalizirati
V tem primeru bomo temu objektu rekli »MyObject«.
Korak 3. Omogočite zaporedje objektov v Javi tako, da razred MyObject izvede vmesnik java.io. Serialize
Samo dodajte naslednjo kodno vrstico na začetku kode in zamenjajte vrstico "javni razred MyObject". Javni razred MyObject izvaja java.io. Serializable
Korak 4. Zdaj je vaš objekt mogoče serializirati, kar pomeni, da ga je mogoče zapisati z izhodnim tokom, na primer:
-
Naslednje kodne vrstice ponazarjajo, kako zapisati MyObject (ali kateri koli predmet, ki ga je mogoče serijalizirati) v datoteko ali disk.
poskusi {
// Seriziraj podatkovni objekt v datoteko
ObjectOutputStream out = nov ObjectOutputStream (nov FileOutputStream ("MyObject.ser"));
out.writeObject (objekt);
out.close ();
// Serialize data object to a byte array
ByteArrayOutputStream bos = nov ByteArrayOutputStream ();
out = nov ObjectOutputStream (bos);
out.writeObject (objekt);
out.close ();
// Pridobimo bajte zaporednega predmeta
byte buf = bos.toByteArray ();
} catch (IOException e) {
}
5. korak. Lahko ga beremo tako:
-
poskusite {FileInputStream door = new FileInputStream ("name_of_file.sav"); Bralnik ObjectInputStream = nov ObjectInputStream (vrata); MyObject x = nov MyObject (); x = (MyObject) reader.nextObject ();} catch (IOException e) {e.printStackTrace ();}
Korak 6. Izvedite zaporedno kodo objekta v programu Java in se prepričajte, da deluje učinkovito (neobvezno)
Korak 7. Shranite in zaprite zaporedni predmet v Javi
Nasveti
- Izboljšave zaporedja v razvojnem kompletu Java SE 6 vam omogočajo, da z ObjectStreamClass poiščete katero koli metodo za ravnanje s predmeti razreda, ki jih ni mogoče serializirati.
- Če želite izboljšati čas branja in pisanja v velikih drevesih objektov, uporabite na primer spremenljivo ključno besedo »prehodno«, ki ne zahteva serializacije. To bo povečalo zmogljivost, saj ne boste več brali in zapisovali nepotrebnih podatkov v postopek zaporedja.
Opozorila
- Java skoraj vsako leto izide z novo različico kompleta za razvijalce. Nove različice vključujejo nadgradnje in spremembe, kako lahko serializirate predmet v Javi. Zato je pomembno spremljati spremembe v različici, ki jo uporabljate.
- Pri zaporedju objektov ne morete šifrirati podatkovnih tokov. Zato se boste morali za zaščito podatkov, če je potrebno, zanašati na druge aplikacije ali sekundarne omrežne transportne procese.
- Trenutno ni možnosti, ki bi vam omogočala zapisovanje predmetov v datoteko z naključnim dostopom. Namesto tega lahko uporabite vhodne izhodne tokove matrike bajtov kot nadomestilo za branje in pisanje predmetov. Vendar se prepričajte, da je celoten objekt v toku Byte Array, sicer postopek ne bo uspel.