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 ridnem lesz sorosítva, mert átmeneti, és contact szintén nem lesz szerializált, mert statikus.