egy Sorszámozás egy folyamat konvertálni egy objektum egy byte, amely kifejezi, hogy egy lemez vagy adatbázis, vagy el lehet küldeni keresztül patakok. Az objektum bájtszekvenciából történő létrehozásának fordított folyamatát deserializációnak nevezzük.
egy osztálynak a java.io
csomagban található szerializálható interfészt kell végrehajtania az objektum sikeres sorozatosításához., Serializable egy marker interfész, amely hozzáteszi, serializable viselkedés az osztály végrehajtó azt.
Java nyújt Serializable API tokozott alatt java.io
csomag serializing, valamint deserializing tárgyak, amelyek közé tartoznak,
java.io.serializable
java.io.Externalizable
ObjectInputStream
ObjectOutputStream
Java Jelölő felület
A jelölő Felület egy speciális felület, Java, anélkül, hogy bármilyen mező módszer., Marker interface használják, hogy tájékoztassa fordító, hogy az osztály végrehajtási van néhány különleges viselkedés vagy jelentése. Néhány példa a Marker interfészre:
java.io.serializable
java.lang.Cloneable
java.rmi.Remote
java.util.RandomAccess
ezeknek az interfészeknek nincs metódusa és mezője. Csak különleges viselkedést adnak az azokat végrehajtó osztályoknak. A marker interfészek azonban a Java 5 óta elavultak, ezeket annotációk váltották fel., A jelölőfelület helyett olyan jelölőfelületeket használnak, amelyek pontosan ugyanolyan szerepet játszanak, mint a jelölő interfészek.
a serialization és deserialization megvalósításához a Java két osztályt biztosít ObjectOutputStream és ObjectInputStream.
ObjectOutputStream class
objektumállapotok írására szolgál a fájlban. Egy objektum, amely megvalósítja a java. io. Serializable felület lehet írni strams. Különböző módszereket biztosít a sorosítás végrehajtásához.
ObjectInputStream class
egy ObjectInputStream deserializes objectinputstream segítségével írt objektumok és primitív adatok.,
writeObject() és readObject() Methods
The writeObject()
method of ObjectOutputStream
class serializes an object and send it to the output stream.
public final void writeObject(object x) throws IOException
The readObject()
method of ObjectInputStream
class references object out of stream and deserialize it.
public final Object readObject() throws IOException,ClassNotFoundException
sorosítás közben ha nem szeretné, hogy bármely mező az objektumállapot része legyen, akkor azt statikusnak vagy tranziensnek nyilvánítsa az Ön igényei alapján, és a java serializációs folyamat során nem szerepel.,
példa: egy objektum Serializálására Java
ebben a példában van egy osztály, amely végrehajtja a szerializálható felületet, hogy az objektum szerializálható legyen.
A Studentinfo osztály objektumát a writeObject()
metódussal szerializáljuk, és a student.txt
fájlra írjuk.
példa: Deserialization objektum Java
a deserialize az objektum, használjuk ObjectInputStream osztály, amely elolvassa az objektumot a megadott fájlt. Lásd az alábbi példát.,
Abhi104null
Kontakt mező null, mert, ez volt jelölve, mint a statikus, ahogy már korábban tárgyalt statikus mezők nem kap sorosizált.
megjegyzés: a statikus tagok soha nem sorosodnak, mert az osztályhoz kapcsolódnak, nem pedig az osztály objektumához.
tranziens kulcsszó
egy objektum sorosítása közben, ha nem akarjuk, hogy az objektum bizonyos adattagja sorosítható legyen, megemlíthetjük tranziens. tranziens kulcsszó megakadályozza, hogy az adatok tagja, hogy szerializált.,
class studentinfo implements Serializable { String name; transient int rid; static String contact;}
- adattag készítése
transient
megakadályozza annak szerializációját. - ebben a példában
rid
nem lesz sorosítva, mert átmeneti, éscontact
szintén nem lesz szerializált, mert statikus.