Java File Input Stream i Ubuntu 20.04

Java File Input Stream I Ubuntu 20 04



'I den här artikeln kommer vi att diskutera olika sätt att läsa data från filer till en byte-array genom att använda klassen Java Input Stream. Denna klass representerar en sorterad ström av byte från en fil. Det finns flera funktioner i Java Input Stream-klassen som ofta används och kommer att diskuteras i den här artikeln, som metoderna read(), available(), skip() och close(). Dessa metoder används för att läsa filer med olika tillägg som bin eller txt-filer och kan ändras för att få information från vilken punkt som helst i filen. Vi kommer att implementera dessa metoder i Ubuntu 20.04-miljön i den här artikeln.

Det finns många fler metoder för File Input Stream-klassen som också är till stor hjälp för att hämta data från en fil; några av dem är int read(byte[] b), den här funktionen läser data från ingångsströmmen upp till b.length bytes i längd. File Channel får kanalen(): Det specifika File Channel-objektet som är anslutet till filinmatningsströmmen returneras med det. Finalize() används för att säkerställa att close()-funktionen anropas när det inte längre finns referens till filens indataström.'

Exempel 01: Läsa en enstaka byte från en textfil med hjälp av metoderna read() och close() för klassen Input Stream

Det här exemplet använder File Input Stream för att läsa ett enda tecken och skriva ut innehållet. Anta att vi har en fil som heter 'file.txt' med innehållet som visas nedan:









Anta att vi har en fil som heter 'file.txt' med innehållet som visas ovan. Låt oss nu försöka läsa och skriva ut det första tecknet i filen.







Vi måste först importera java.io. File Input Stream-paket för att konstruera en filinmatningsström. Sedan kommer vi att skapa ett nytt objekt för File Input Stream som kommer att länkas till filen som anges (file.txt) i variabeln 'f'.

I det här exemplet kommer vi att använda metoden 'int read()' i klassen Java File Input Stream, som används för att läsa en enda byte från filen och spara den i variabeln 'I'. Därefter visar 'System.out.print(char(i))' tecknet som motsvarar den byten.



f.close()-metoden stänger filen och strömmen. Vi kommer att få följande utdata efter att ha byggt och kört det ovannämnda skriptet, eftersom vi kan se att endast den första bokstaven i texten 'L' skrivs ut.

Exempel 02: Läsa allt innehåll i en textfil med hjälp av metoderna read() och close() i klassen Input Stream

I det här exemplet kommer vi att läsa och visa allt innehåll i en textfil; enligt nedanstående:

Återigen kommer vi att importera java.io. File Input Stream-paket för att konstruera en filinmatningsström.

Först läser vi den första byten av filen och visar motsvarande tecken inuti while-loopen. While-slingan kommer att köras tills det inte finns några byte kvar, det vill säga slutet av texten i filen. Rad 12 kommer att läsa nästa byte, och slingan kommer att fortsätta till den sista byten i filen.

Efter att ha kompilerat och kört ovanstående kod kommer vi att få följande resultat. Som vi kan se visas hela texten i filen 'Lorep Ipsum' i terminalen.

Exempel 03: Bestämma antalet tillgängliga byte i en textfil genom att använda den tillgängliga metoden () för inmatningsströmklass

I det här exemplet kommer vi att använda File Input Streams 'available()'-funktion för att bestämma antalet befintliga byte i filinmatningsströmmen.

Först genererade vi ett objekt av filinmatningsströmklass med namnet 'a' med följande kod. I rad 5 använde vi metoden 'available()' för att bestämma och visa den totala mängden tillgängliga byte i filen. Sedan från rad 6 till rad 8 använde vi funktionen 'read()' tre gånger. Nu på rad 9 använde vi metoden 'available()' igen för att kontrollera och visa de återstående byten.

Efter att ha kompilerat och kört koden kan vi se att den första raden i utdata visar det totala antalet tillgängliga byte i filen. Nästa rad visar antalet tillgängliga byte i slutet av koden, vilket är 3 mindre än antalet tillgängliga byte i början. Detta beror på att vi använde läsmetoden tre gånger i vår kod.

Exempel 04: Hoppa över bytes av en textfil för att läsa data från en specifik punkt med hjälp av skip()-metoden för indataströmklass

I det här exemplet kommer vi att använda metoden 'skip(x)' för File Input Stream, som används för att ignorera och bortse från det givna antalet byte med data från indataströmmen.

I koden nedan har vi först skapat en filinmatningsström och lagrat den i variabeln 'a'. Därefter har vi använt metoden 'a.skip(5)', som kommer att hoppa över de första 5 byten av filen. Därefter skrev vi ut de återstående tecknen i filen med metoden 'read()' i en while-loop. Slutligen stängde vi filinmatningsströmmen med metoden 'close()'.

Nedan är skärmdumpen av terminalen efter kompilering och körning av koden. Som vi kan se visas endast 'Ipsum' eftersom vi har hoppat över de första 5 byten med metoden 'skip()'.

Slutsats

I den här artikeln har vi diskuterat användningen av klassen File Input Stream och dess olika metoder; read(), tillgänglig(), skip() och close(). Vi använde dessa metoder för att läsa det första elementet i en fil genom att använda metoderna read() och close(). Sedan läser vi hela filen genom den iterativa metoden och med samma metoder. Sedan använde vi metoden available() för att bestämma antalet byte som fanns vid starten och slutförandet av filen. Efter det använde vi skip()-metoden för att hoppa över flera byte innan vi läste filen, vilket gjorde att vi kunde få de specifika data som vi behövde.