Eksempel 1
Forsøket med et enkelt ressursscenario er demonstrert i det følgende for å utforske ytelsen til Try-With-Resource-uttalelsen i Java. Følgende forsøk med den enkelt ressurserklæringen brukes til å lese filen:
Når vi leser filen med Try-With-Resource-setningen, blir importuttalelsen til FileInputStream-modulen først lagt til. Deretter konstruerer vi “Demo1” Java-klassen der Main () -metoden implementeres for å lage uttalelsen fra Try-With-Resource. Først har vi en prøveblokk der vi erklærer ressursen i filstrømmen. Vi kaller FileInputStream -objektet “FS” som tar inndatafilen, “MyFile.tekst". Etter det bruker vi inndatafilressursen i Try -setningsblokken for å lese fra den filen. Vi erklærer “myData” -objektet der lest () -metoden brukes til å lese inndatafilen.
Deretter har vi en stundsløyfetilstand for å få dataene fra filen fra “MyData” -objektet. Når dataene er lest, skrives de ut av Print () -metoden som type støper “MyData” -objektet i røye. Enhver feil som oppstår med fillesressursen i Try Try -setningen, håndteres av fangstuttalelsen som er distribuert etter Try -setningen.
Inndatafilen “MyFile.TXT ”gitt i det forrige programmet inneholder følgende data:
Try-State-blokken uten feil leser dataene fra “Myfilen.txt ”som er kopiert på følgende terminal:
Eksempel 2
Try-With-Resource Simple Demonstration implementeres i forrige eksempel. Nå er saken å opprette objektet i Try-With-ressurserklæringen fra den tilpassede klassen som implementerer det autoklosable grensesnittet. Lukk deretter programmet i den tilpassede klassen.
Vi bygger en "Demo3" Java -klasse som erklærer Main () -metoden der vi definerer en annen klasse, "CustomRead". Dette er vår tilpassede klasse som implementerer grensesnittet til AutoClOsable for automatisk å administrere ressursene i Try -blokken. Deretter, i "CustomRead" tilpasset klasse, bruker vi overstyringsoperasjonen og kaller den lukkede () -metoden for å lukke alle ressursene til prøveblokken som er tilgjengelig fra de autoklosable ressursene.
Etter det distribuerer vi prøveblokken der "jeg" -objektet er erklært å påkalle customread () -klassen. Vi legger til ressursen til utskriftserklæringen i prøveblokken. Til slutt setter vi fangstblokken som bruker unntaksklassen for å håndtere ethvert unntak av prøveblokken.
Try -setningen vises på utførelsestiden. Etter utførelsen av Try Block kaller JVM den lukkede metoden som lukker ressursene i Try -blokken.
Eksempel 3
Try-With kan også brukes med flere ressurser. I dette forsøket med flere ressurser er ressursene stengt inne i parentesene i omvendt rekkefølge når de er erklært. La oss ha eksemplet på prøve-med flere ressurser i følgende illustrasjon:
Vi satte først Try Statement -delen i Main () -metoden i denne programklassen, “Demo3”. Try -uttalelsen er tildelt med flere ressurser. Først oppretter vi “Fos” -objektet i FileOutputStream -klassen for å skrive dataene i den spesifiserte filen, “MyFile.tekst". Deretter erklærer vi “FIS” -objektet for FileInputStream og legger inn filnavnet der.
Deretter gir vi strengen i "Str1" -variabelen og konverterer strengen til byte -arrayen ved hjelp av getBytes () -metoden. Etter det kaller vi skrive () -metoden for å sette inn bytearray -strengen i filen. Vi kan lese innholdet til filen fordi strengen er skrevet der. For dette oppretter vi “Inst” -objektet i inndatafilen der DatainPutStream () -klassen tar filen Input Stream -objektet eller “FIS”. For å lese dataene fra input stream -filen, bruker vi den tilgjengelige () -metoden til FileIntputStream som får det gjenværende antallet byte fra filen.
Deretter har vi bytharray -konvertering av dataene fra inngangsstrømfilen og leser filen via LES () -metoden. ByteArray blir deretter ført i strengkonstruktøren som er definert inne i “Str2” -objektet. Dataene til inndatafilen skrives deretter ut på utførelsen av programmet når fangstblokken ikke vil fange noe unntak fra Try -setningen.
Try-With Multiple Resource Output vises her. Den viser dataene som er skrevet i inndatafilen og leser deretter dataene fra filen.
Eksempel 4
Try-With-ressursene kan også stenges ved hjelp av den endelig blokken. Den endelig blokken verifiserer at ressursene som er erklært i Try -uttalelsen er stengt.
Vi erklærer BufferedReader -objektet, "Buffread", som er erklært utenfor Try -uttalelsen. Sammen med dette har vi et annet objekt, "strline". Etter det bruker vi prøveblokken der "Buffread" -objektet kaller BufferReder -klassen som setter FileReader til å lese dataene fra filen. Mens Loop er distribuert for å ta dataene fra Buffread -objektet ved hjelp av Readline () -metoden. IOException mens du leser filen blir fanget og håndtert av fangstblokken i Try -blokken med ressursene.
Deretter har vi en implementering av en endelig blokk. Endelig blokkering er videre distribuert med prøvefangstblokken for å rense Try-uttalelsesressursene som gjør programmet mer komplisert. Try-fangst av den endelig blokkeringen brukes fordi det er risikoen for at en IOException skal oppstå når du lukker BufferedReader-objektet "Buffread" inne i denne endelig blokken, som også blir fanget og behandlet.
Utgangen vises for trygghetsuttalelsen sammen med den endelig blokken. Ressursene trenger ikke å være eksplisitt stengt fordi JVM lukker dem for oss. Som vi vet, administrerer Try-With-ressurserklæringen ressursene automatisk, noe som gjør koden enklere og enkel å lese.
Konklusjon
Det grunnleggende prinsippet for Java Try-With-Resource er Auto Resource Management. Try-With-Resource hjelper oss med å administrere ressursene mens vi håndterer unntakene. Try-With-ressursblokken reiser undertrykte unntak. Dessuten blir fangstblokken eller den endelig blokkeringen alltid utført etter at ressursen til Try -uttalelsen er stengt. Vi implementerte prøvekostnaden.