Serialisering er en prosess med å konvertere et objekt inn i en sekvens av bytes som kan være faste til en disk eller database eller kan bli sendt gjennom bekker. Den omvendte prosessen med å opprette objektet fra sekvens av bytes kalles deserialisering.

En klasse må gjennomføre Serialiserbare grensesnitt til stede i java.io pakke for å serialisere formål å lykkes., Serialiserbare er en markør grensesnitt som legger til serialiserbare atferd til klasse å gjennomføre den.

Java gir Serialiserbare API innkapslet under java.io pakke for serializing og deserializing objekter som inkluderer,

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

Java Markør grensesnitt

Markør-Grensesnitt, er et spesielt grensesnitt i Java uten alle felt og metode., Markør-grensesnittet brukes til å informere kompilatoren at klassen implementere det har noen spesiell atferd eller mening. Noen eksempel på Markør-grensesnittet er,

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

Alle disse grensesnittene ikke har noen metode og felt. De bare legge spesiell atferd til klasser å implementere dem. Men markør grensesnitt har blitt avskrevet siden Java 5, ble de erstattet av Kommentarer., Kommentarer er brukt i stedet for Markør Grensesnitt som spiller den samme rolle som markør grensesnitt gjorde før.

for Å implementere serialisering og deserialisering, Java tilbyr to klasser ObjectOutputStream og ObjectInputStream.

ObjectOutputStream klasse

Det er brukt til å skrive byer. til filen. Et objekt som implementerer java.io.Serialiserbare grensesnitt kan være skrevet for å strams. Det gir ulike metoder for å utføre bedriften.

ObjectInputStream klasse

En ObjectInputStream deserializes objekter og primitive data som skrives ved hjelp av en ObjectOutputStream.,

writeObject() og readObject() Metoder

writeObject() metode for ObjectOutputStream klasse serializes et objekt og send den til output stream.

public final void writeObject(object x) throws IOException

readObject() metode for ObjectInputStream klasse referanser objekt ut av strømmen og deserialisere det.

public final Object readObject() throws IOException,ClassNotFoundException

mens serializing hvis du ikke ønsker et hvilket som helst felt for å være en del av objekt-tilstand så erklærer det enten statisk eller forbigående basert på ditt behov, og det vil ikke bli inkludert i løpet av java-serialisering prosessen.,

Eksempel: Serializing et Objekt i Java

I dette eksempelet har vi en klasse som implementerer Serialiserbare grensesnitt for å gjøre sitt objekt som føljetong.

Objekt av Studentinfo klasse er serialisert ved hjelp av writeObject() metode og skrevet til student.txt – filen.

Eksempel : Deserialisering Objekt i Java

deserialisere objektet, vi bruker ObjectInputStream klasse som vil lese objekt fra den angitte filen. Se eksempelet nedenfor.,

Abhi104null

Kontakt feltet er null fordi det var merket som statisk og som vi har diskutert tidligere statiske felt ikke blir serialisert.

MERK: Statiske medlemmer er aldri serialisert fordi de er koblet til klasse ikke objekt av klassen.

forbigående Søkeord

Mens serializing et objekt, hvis vi ikke vil at bestemte data medlem av objektet til å være serialisert kan vi nevne det forbigående. forbigående søkeord vil hindre at data medlem fra å være serialisert.,

class studentinfo implements Serializable { String name; transient int rid; static String contact;}
  • for å Lage en data-medlem transient vil hindre den i bedriften.
  • I dette eksempelet rid vil ikke være serialisert fordi det er forbigående, og contact vil også fortsatt være unserialized fordi det er statisk.