Java OutputStream Flush

Java OutputStream Flush
Strømmer av informasjon lagres i et minneområde som heter buffere (tegn). Hver gang hurtigbufferen er fylt, kan denne informasjonen ofte bare leveres til en utgangsenhet. For å sende innholdet i hurtigbufferen til utgangsstrømmen, bruk flush () -funksjonen til outputstream -klassen. Vi bruker flush () -funksjonen til Java.io.OutputStream som tvinger alle lagrede utgangsbyte som skal skyves ut. Å bruke flushen betyr generelt at eventuelle eksisterende innskrevne byte som utgangsstrømningsmekanismen har hurtiget må skrives øyeblikkelig til deres utpekte sted. Mange av oss er kanskje uvitende om bruken av "flush" -funksjonen i Java -programmering. Denne artikkelen vil hjelpe hver Java -bruker til å forstå bruken av en flush () -funksjon.

Oppdater systemet

Før implementeringen av et Java -eksempel, må du sørge for at systemet ditt er fullstendig oppdatert og ikke har noen ufullstendige prosesser. For å sikre det, må du starte Linux Terminal -applikasjonen. Bruk Ctrl+ALT+T for å gjøre det. Etter lanseringen, legg til den viste "oppdateringen" -instruksjonen som bruker "apt" -pakken med "sudo" -rettigheter for å oppdatere Linux -maskinen. Hvis maskinen din ikke blir oppdatert på ganske lang tid, ber den om et systempassord. Utgangen for utførelse av denne instruksjonen vises i følgende vedlagte bilde:

Eksempel 1:

Innenfor vårt første Java -eksempelprogram demonstrerer vi bruken av FLUSH () -funksjonen sammen med filinngangen og utgangsstrømmen. Dermed må vi lage en Java -fil med ".Java ”-forlengelse i konsollen via“ Touch ”-spørsmålet. Denne Java -filen er tom og ligger for tiden i hjemmekatalogen til vår Ubuntu 20.04 System i henhold til "LS" -spørsmålet. Vi åpner den med en tekstredigerer ved hjelp av File Explorer.

Vi legger til følgende Java -skript i denne tomme Java -filen for å utføre spyling via FLUSH () -funksjonen. Du kan importere inngangs- og outputfilestream -klassene separat i starten av koden, men vi foretrekker å bare importere hele Java.IO -pakken ved å bruke “*” -tegnet. Etter dette lager vi en ny brukerdefinert klasse som heter “OutputStreamDemo” i dette skriptet som inneholder en definisjon av hovedfunksjonen (). Når programmet blir utført, begynner dens viktigste () -funksjon å kjøre umiddelbart. Try-Catch () -uttalelsen brukes innen hovedmetoden () for å unngå plutselig avslutning av programmet vårt. Vi bruker FileOutputStream () -klassen med et tekstfilnavn “Flush.txt ”for å opprette et Output Stream -objekt“ ut ”for å skrive dataene til en tekstfil ved hjelp av OutputStream Class -objektet. Rett etter det oppretter vi et input stream -objekt “INP” ved hjelp av FileInputStream -klassen som bruker samme filnavn i parametrene. “Inp” -objektet brukes til å lese dataene fra en “Flush.txt ”-fil etter å ha skrevet dataene.

Derfor kaller vi skriv () -funksjonen til Java med "out" output stream -objektet for å skrive et tegn "a" til en "flush.txt ”-fil. Det samme OutputStream -objektet "ut" kaller flush () -funksjonen på neste linje for å sikre at de skriftlige karakterdataene bare skyves til inngangsstrømmen. I den 9. kodelinjen bruker vi skrivefunksjonen ().txt ”-fil. Den viser bare det første tegnet på konsollen etter utførelsen av dette programmet da vi brukte flush () -funksjonen før vi skrev det andre tegnet til filen.

PRINTLN () funksjonserklæringen fra systemet.Out -pakken er avskåret for å vise resultatet av å kalle den tilgjengelige () -funksjonen med inngangsstrømobjektet “INP” og vise det totale antallet inngangsverdier som er tilgjengelige. På neste linje bruker vi println () -uttalelsen igjen for å lese de innskriverte dataene fra en fil via "Les" -funksjonen som kalles med "INP" -objektet. Fangstdelen er her for å fange feilene fra koden og vise dem på utgangsskjermen etter utførelsen av dette programmet. La oss lagre koden vår:

Når du kjører denne Java -filen med "Java" -spørsmålet, viser den at vi har to inngangsverdier i filen mens den bare viser "A" på grunn av bruken av FLUSH () -funksjonen. Filen inneholder 2 tegn.

Eksempel 2:

Det samme kan oppnås for byte -array -data i Java. Dermed bruker vi dette eksemplet for å implementere det på en litt annen måte. Etter å ha importert “Java.IO ”-pakke og opprette en" test "demoklasse, vi lager en hovedfunksjon () som kaster et unntak i tilfelle den finner ethvert problem. Main () -funksjonen starter med opprettelsen av en byte -array -utgangsstrøm som "B" ved bruk av ByteArrayOutputStream -klassen. Byte -array -utgangsstrømmen sendes til bufferedoutputstream -klassen for å lage et objekt “BB” for den buffrede utgangsstrømmen.

På denne måten kan vi ganske enkelt lage en byte -array -utgangsstrøm ved kjøretid for å skrive dataene til en byte -utgangsstrøm. Lag en byte -matrise med 4 heltallverdier og skriv den ved hjelp av bufferedOutputStream “BB”. FLUSH () -funksjonen kalles via “BB” -objektet. “For” -sløyfen bruker TobyteArray () -funksjonen for å konvertere byte -strømmen “B” til en matrise. Ved konvertering av hvert heltall til byte -tegn, er det skrevet ut med suksess med println ().

Når vi kjører denne Java -koden, fikk vi den konverterte byteverdien - Seek - på skjermen vår.

Konklusjon

Kommer ned fra starten av denne artikkelen til slutten, vil du finne den lastet med informasjonen en Java -bruker som trenger om bruk av en spyle -funksjon. Vi dekket formålet med å bruke flush () -funksjonen i vår artikkel introduksjon og utførte to enkle Java -eksempler for å støtte vår forklaring. Det første eksemplet inneholder bruk av FileOutputStream og FileInputStream -klassen sammen med FLUSH () -funksjonen for bare å vise dataene som er lagt til før bruk av Flush. Mens det andre eksemplet viser at du kan bruke det til å gjøre noe så bra.