Denne bloggen vil utdype bruken og implementeringen av nøkkelordet 'forbigående' i Java.
Hva er det 'forbigående' nøkkelordet i Java?
Java ' flyktig ' søkeord brukes for å unngå ' serialisering '. Hvis et objekt i en datastruktur er allokert som en transient, betyr det at det ikke vil bli serialisert. Det fungerer slik at hvis en bestemt variabel er allokert som forbigående, kan den ikke skrives i filen, og ' 0 ” lagres i stedet.
Syntaks
privat flyktig < mem var >;
I denne syntaksen ' mem var ' peker på variabelen tildelt som ' flyktig '.
Før du går til eksemplet, sørg for å inkludere følgende biblioteker for å jobbe med ' Serialiserbar '-grensesnitt og få tilgang til alle klassene og metodene, henholdsvis:
import java.io.Serialiserbar ;
import java.io.* ;
Demonstrasjon av det 'forbigående' nøkkelordet i Java
I følgende eksempel er ' flyktig ” nøkkelord kan assosieres med en variabel slik at dens beståtte verdi i objektet ikke kan skrives i filen:
offentlig klasse forbigående nøkkel redskaper Serialiserbar {String Navn ;
String by ;
flyktig int alder ;
forbigående nøkkel ( String Navn, String by, int alder ) {
dette . Navn = Navn ;
dette . by = by ;
dette . alder = alder ;
}
I henhold til kodelinjene ovenfor, bruk trinnene nedenfor:
- Først av alt, definer en klasse som heter ' forbigående nøkkel 'som implementerer' Serialiserbar ” for å gjøre klasseobjektet serialiserbart og tillate at konvertering av et objekt lagres i form av en fil.
- I klassedefinisjonen spesifiser de angitte variablene med ' alder ' tildelt som ' flyktig '.
- Lag nå en klassekonstruktør som har de angitte parameterne identiske med de angitte variablene.
- I konstruktørdefinisjonen, referer til de spesifiserte variablene og alloker dem parameterverdiene via ' dette '.
Nå, oversikt over ' hoved- ' kodebit:
offentlig statisk tomrom hoved- ( String args [ ] ) kaster Unntak {transientkey objekt = ny forbigående nøkkel ( 'Harry' , 'London' , 22 ) ;
FileOutputStream fileOut = ny FileOutputStream ( 'defaultfile.txt' ) ;
ObjectOutputStream objOut = ny ObjectOutputStream ( fileOut ) ;
objOut. skriveobjekt ( gjenstand ) ;
objOut. spyle ( ) ;
objOut. Lukk ( ) ;
fileOut. Lukk ( ) ;
System . ute . println ( 'Data lagret vellykket!' ) ;
ObjectInputStream fil = ny ObjectInputStream ( ny FileInputStream ( 'defaultfile.txt' ) ) ;
transientkey readData = ( forbigående nøkkel ) fil. readObject ( ) ;
System . ute . println ( leseData. Navn + ' ' + leseData. by + ' ' + leseData. alder + '' ) ;
fil. Lukk ( ) ;
} }
I « hoved- ', vurder trinnene nedenfor:
- Lag et klasseobjekt via ' ny ' nøkkelord og ' transientkey() ” konstruktør, henholdsvis og sende de oppgitte verdiene som konstruktørargumenter.
- I neste trinn oppretter du en ' FileOutputStream ” objekt for å skrive de beståtte dataene til den spesifiserte fil .
- Etter det oppretter du også en ' ObjectOutputStream ' objekt for å skrive objekter som kan leses av ' ObjectInputStream '.
- Bruk nå ' skriveobjekt() '-metoden for å skrive det angitte klasseobjektet til ' ObjectOutputStream '.
- For å skylle og lukke strømmen, bruk ' flush() ' og ' Lukk() ”-metoder, henholdsvis.
- For å lese filen, lag en ' ObjectInputStream ' objekt og samle den skrevne filen som en ' FileInputStream ”-parameter for å hente inngangsbytene fra fil .
- Les til slutt innholdet i filen ved å referere til det opprettede klasseobjektet ' forbigående nøkkel '.
- Algoritme: Verdiene som sendes i objektet vil bli skrevet til filen bortsett fra verdien tildelt som ' flyktig '. Ved lesing av filen vil alle verdiene bli hentet, men den forbigående verdien vil vises som ' 0 '.
Hele koden
offentlig klasse forbigående nøkkel redskaper Serialiserbar {String Navn ;
String by ;
flyktig int alder ;
forbigående nøkkel ( String Navn, String by, int alder ) {
dette . Navn = Navn ;
dette . by = by ;
dette . alder = alder ;
}
offentlig statisk tomrom hoved- ( String args [ ] ) kaster Unntak {
transientkey objekt = ny forbigående nøkkel ( 'Harry' , 'London' , 22 ) ;
FileOutputStream fileOut = ny FileOutputStream ( 'defaultfile.txt' ) ;
ObjectOutputStream objOut = ny ObjectOutputStream ( fileOut ) ;
objOut. skriveobjekt ( gjenstand ) ;
objOut. spyle ( ) ;
objOut. Lukk ( ) ;
fileOut. Lukk ( ) ;
System . ute . println ( 'Data lagret vellykket!' ) ;
ObjectInputStream fil = ny ObjectInputStream ( ny FileInputStream ( 'defaultfile.txt' ) ) ;
transientkey readData = ( forbigående nøkkel ) fil. readObject ( ) ;
System . ute . println ( leseData. Navn + ' ' + leseData. by + ' ' + leseData. alder + '' ) ;
fil. Lukk ( ) ;
} }
Produksjon
I resultatet ovenfor kan det antydes at siden ' alder ' er tildelt som ' flyktig ', derfor skrives ikke verdien i filen og hentes deretter, dvs. ' 0 '.
Opprettet fil
Den opprettede filen vises nedenfor:
Det handlet om bruken av det forbigående nøkkelordet i Java.
Konklusjon
Java transient nøkkelordet brukes til å avstå fra serialisering slik at hvis en bestemt variabel er tilordnet som ' flyktig ', kan det ikke skrives i filen, og ' 0 ” lagres i stedet. Denne artikkelen diskuterte bruken og implementeringen av ' flyktig ' nøkkelord i Java.