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, ogcontact
vil også fortsatt være unserialized fordi det er statisk.