Kui Java -s objekti järjestatakse, teisendate andmed baitvoogudeks, mis hiljem teisendatakse tagasi algandmete koopiaks. Kui see tundub segane, mõelge serialiseerimisele järgmistes terminites. Töötate dokumendi kallal ja salvestage see seejärel kõvakettale. Räägite, et järjestate andmeid, et saaksite selle koopia hiljem kätte saada. Serialiseerimine muudab andmete edastamise võrkudes palju lihtsamaks ja tõhusamaks.
Enne objekti seerianumbrit on oluline mõista Java põhitõdesid. Kui olete kasutanud programmeerimiskeeli, näiteks Pascali ja C -i vanemaid versioone, teate, et ilma objektide jadastamiseta peab programmeerija andmete salvestamiseks ja laadimiseks looma eraldi I/O -tekstifaili. Objektide jadastamine Java -süsteemis möödub selle tekstifaili loomisest andmete salvestamiseks, säästes aega ja programmeerimiskulusid. Järgmine artikkel sisaldab Java -s objekti seerianumbreid. Selle artikli näidiskoodi kasutatakse viisakalt Java Developers Almanac 1.4.
Sammud
Samm 1. Avage Java -kodeerimisobjekt, mis nõuab serialiseerimist, või looge see nullist
Samm 2. Valige Java -seadmes objekt, mida soovite järjestada
Selles näites nimetame seda objekti "MyObject".
Samm 3. Luba objektide seeriaviisiline koostamine Java -s, muutes MyObject klassi java.io. Serialize liidese rakendamiseks
Lihtsalt lisage koodi algusesse järgmine koodirida, asendades rea "avalik klass MyObject". Avalik klass MyObject rakendab java.io. Serializable
Samm 4. Nüüd on teie objekt serialiseeritav, see tähendab, et seda saab kirjutada väljundvooga järgmiselt:
-
Järgmised koodiridad illustreerivad, kuidas MyObjecti (või mis tahes järjestatavat objekti) faili või kettale kirjutada.
proovi {
// Andmeobjekti järjestamine faili
ObjectOutputStream out = uus ObjectOutputStream (uus FileOutputStream ("MyObject.ser"));
out.writeObject (objekt);
out.close ();
// Seadista andmeobjekt baidimassiivi
ByteArrayOutputStream bos = uus ByteArrayOutputStream ();
out = uus ObjectOutputStream (bos);
out.writeObject (objekt);
out.close ();
// Hankige järjestatud objekti baidid
bait buf = bos.toByteArray ();
} saak (IOException e) {
}
Samm 5. Seda saab lugeda järgmiselt:
-
proovige {FileInputStream door = new FileInputStream ("nimi_fail.sav"); ObjectInputStream lugeja = new ObjectInputStream (uks); MyObject x = uus MyObject (); x = (MyObject) reader.nextObject ();} catch (IOException e) {e.printStackTrace ();}
Samm 6. Käivitage Java -programmis seeriaobjektikood, et veenduda selle tõhusas toimimises (valikuline)
Samm 7. Salvestage ja sulgege jadastatud objekt Java -s
Näpunäiteid
- Java SE arenduskomplekti 6 seriaalistamise täiustused võimaldavad teil ObjectStreamClass otsida mis tahes meetodit mis tahes seeriaviisiliste klassiobjektide käsitlemiseks.
- Suurte objektipuude lugemis- ja kirjutamisaegade parandamiseks kasutage märksõna „mööduv“, näiteks muutujate jaoks, mis ei nõua järjestamist. See suurendab jõudlust, kuna te ei loe ja kirjutab enam tarbetuid andmeid serialiseerimisprotsessi.
Hoiatused
- Java tuleb koos arendajakomplekti uue versiooniga välja peaaegu igal aastal. Uued versioonid sisaldavad täiendusi ja muudatusi selles, kuidas saate Java -s objekti seerianumbrit muuta. Seetõttu on oluline jälgida kasutatava versiooni muudatusi.
- Objektide järjestamisel ei saa andmevooge krüptida. Seetõttu peate andmete kaitsmiseks vajadusel tuginema teistele rakendustele või teisese võrgu edastusprotsessile.
- Praegu pole ühtegi võimalust, mis võimaldaks teil objekte juhusliku juurdepääsuga faili kirjutada. Selle asemel saate baitide massiivi sisendväljundvooge kasutada kohatäiteks objektide lugemiseks ja kirjutamiseks. Veenduge siiski, et kogu objekt on baitmassiivi voos, vastasel juhul ebaõnnestub protsess.