Serialization on prosessi muuntaa objektin tavujen sekvenssi, joka voi olla jatkunut levylle tai tietokantaan tai voidaan lähettää kautta puroihin. Käänteistä prosessia, jossa objekti luodaan tavujen sekvenssistä, kutsutaan deserialisaatioksi.

– luokan tulee toteuttaa Serializable käyttöliittymä läsnä java.io paketti jotta voidaan sarjoittaa sen objektin onnistuneesti., Serializable on merkkiliittymä, joka lisää serializable käyttäytymistä luokan toteuttaa sitä.

Java Serializable API kapseloitu alle java.io paketti serializing ja android esineitä, jotka sisältävät,

  • java.io.serializable
  • java.io.Externalizable
  • ObjectInputStream
  • ObjectOutputStream

Java Marker käyttöliittymä

Marker Käyttöliittymä on erityinen käyttöliittymä Java-ilman-kenttään ja menetelmä., Merkkiliittymää käytetään kertomaan kääntäjälle, että sen toteuttavalla luokalla on jotain erityistä käyttäytymistä tai merkitystä. Jotkut esimerkiksi Marker käyttöliittymä ovat,

  • java.io.serializable
  • java.lang.Cloneable
  • java.rmi.Remote
  • java.util.RandomAccess

Kaikki nämä rajapinnat ei ole mitään menetelmä ja kenttä. Ne vain lisäävät erityistä käyttäytymistä luokat toteuttaa niitä. Merkinantoliitännät on kuitenkin poistettu Java 5: n jälkeen, ja ne on korvattu merkinnöillä., Merkintöjä käytetään Marker Käyttöliittymä, joka pelaa täsmälleen sama rooli kuin merkki liitännät ennen.

toteuttaa serialization ja deserialization, Java tarjoaa kaksi luokat ObjectOutputStream ja ObjectInputStream.

ObjectOutputStream luokka

Sitä käytetään kirjoittaa object states-tiedostoon. Objekti, joka toteuttaa java.io.Serializable käyttöliittymä voidaan kirjoittaa strams. Se tarjoaa erilaisia menetelmiä serialization.

ObjectInputStream luokka

On ObjectInputStream deserializes esineitä ja primitiivinen tietoja kirjoitettu käyttäen ObjectOutputStream.,

writeObject() ja readObject() Menetelmät

writeObject() tapa ObjectOutputStream luokan sarjoittaa objekti ja lähettää sen output stream.

public final void writeObject(object x) throws IOException

readObject() tapa ObjectInputStream luokka viittaa objektin ulos stream ja deserialize se.

public final Object readObject() throws IOException,ClassNotFoundException

kun serializing jos et halua tahansa alalla olevan osa objektin tila sitten julistaa, että se joko staattinen tai ohimenevä perustuu omaan tarpeeseen ja se ei sisälly aikana java serialization prosessi.,

Esimerkki: Serializing Objekti Java

tässä esimerkiksi, meillä on luokka, joka toteuttaa Serializable-rajapinta, jotta sen kohde sarjana.

Kohde Studentinfo luokka on sarjoitettu käyttäen writeObject() menetelmä ja kirjoitettu student.txt tiedosto.

Esimerkki : Deserialization Object Java

deserialize esine, meidän on käyttää ObjectInputStream luokka, joka lukee objektin määritetty tiedosto. Katso alla oleva esimerkki.,

Abhi104null

ota Yhteyttä-kenttä on null,koska se oli merkitty staattinen ja kuten olemme keskustelleet aiemmin staattiset kentät ei saa sarjoittaa.

huomaa: staattisia jäseniä ei koskaan serialisoida, koska ne on kytketty luokkaan, joka ei ole luokan objekti.

ohimeneviä Avainsanan

Kun serializing kohde, jos emme halua tiettyjä tietoja jäsen kohde voidaan sarjoittaa voidaan mainita se ohimenevää. ohimenevä avainsana estää tiedon jäsenen sarjallistumisen.,

class studentinfo implements Serializable { String name; transient int rid; static String contact;}
  • Making tiedot jäsenvaltioiden transient estää sen serialization.
  • tässä esimerkki rid ei sarjoitettu, koska se on ohimenevää, ja contact pysyy myös unserialized, koska se on staattinen.