Postoji mnogo više metoda File Input Stream klase koje su također vrlo korisne u dobivanju podataka iz datoteke; neki od njih su int read(byte[] b), ova funkcija čita podatke iz ulaznog toka do b.length duljine bajtova. Datotečni kanal dobiva kanal(): Specifični File Channel objekt povezan s ulaznim tokom datoteke vraća se pomoću njega. Finalize() se koristi kako bi se osiguralo da se funkcija close() poziva kada više ne postoji referenca na ulazni tok datoteke.”
Primjer 01: Čitanje jednog bajta iz tekstualne datoteke korištenjem metoda read() i close() klase ulaznog toka
Ovaj primjer koristi File Input Stream za čitanje jednog znaka i ispis sadržaja. Pretpostavimo da imamo datoteku pod nazivom 'file.txt' sa sadržajem prikazanim u nastavku:
Pretpostavimo da imamo datoteku pod nazivom 'file.txt' sa sadržajem prikazanim iznad. Pokušajmo sada pročitati i ispisati prvi znak datoteke.
Prvo moramo uvesti java.io. File Input Stream paket za izradu ulaznog toka datoteke. Zatim ćemo stvoriti novi objekt File Input Stream koji će biti povezan s navedenom datotekom (file.txt) u varijabli “f”.
U ovom primjeru koristit ćemo metodu 'int read()' klase Java File Input Stream, koja se koristi za čitanje jednog bajta iz datoteke i njegovo spremanje u varijablu 'I'. Zatim, 'System.out.print(char(i))' prikazuje znak koji odgovara tom bajtu.
Metoda f.close() zatvara datoteku i tok. Dobit ćemo sljedeći izlaz nakon izgradnje i pokretanja gore navedene skripte, jer možemo vidjeti da je ispisano samo početno slovo teksta 'L'.
Primjer 02: Čitanje cijelog sadržaja tekstualne datoteke korištenjem metoda read() i close() klase ulaznog toka
U ovom primjeru čitat ćemo i prikazivati sav sadržaj tekstualne datoteke; kako je prikazano dolje:
Još jednom ćemo uvoziti java.io. File Input Stream paket za izradu ulaznog toka datoteke.
Prvo ćemo pročitati prvi bajt datoteke i prikazati odgovarajući znak unutar while petlje. While petlja će se izvoditi sve dok ne ostane nijedan bajt, odnosno dok ne završi tekst u datoteci. Linija 12 će pročitati sljedeći bajt, a petlja će se nastaviti do posljednjeg bajta datoteke.
Nakon prevođenja i izvršavanja gornjeg koda, dobit ćemo sljedeće rezultate. Kao što vidimo, cijeli tekst datoteke “Lorep Ipsum” prikazan je na terminalu.
Primjer 03: Određivanje broja dostupnih bajtova u tekstualnoj datoteci korištenjem metode available() klase ulaznog toka
U ovom primjeru koristit ćemo se funkcijom 'available()' File Input Stream-a za određivanje broja postojećih bajtova u ulaznom toku datoteke.
Prvo smo generirali objekt klase ulaznog toka datoteke pod nazivom 'a' sa sljedećim kodom. U retku 5 upotrijebili smo metodu 'available()' za određivanje i prikaz ukupne količine dostupnih bajtova u datoteci. Zatim smo od retka 6 do retka 8 triput koristili funkciju 'read()'. Sada smo u retku 9 ponovno koristili metodu 'available()' za provjeru i prikaz preostalih bajtova.
Nakon prevođenja i pokretanja koda, možemo vidjeti da prvi redak izlaza prikazuje ukupan broj dostupnih bajtova u datoteci. Sljedeći red prikazuje broj bajtova dostupnih na kraju koda, što je 3 manje od bajtova dostupnih na početku. To je zato što smo metodu čitanja koristili tri puta u našem kodu.
Primjer 04: Preskakanje bajtova tekstualne datoteke za čitanje podataka s određene točke korištenjem metode skip() klase ulaznog toka
U ovom primjeru koristit ćemo metodu 'skip(x)' ulaznog toka datoteke, koja se koristi za ignoriranje i zanemarivanje zadanog broja bajtova podataka iz ulaznog toka.
U donjem kodu, prvo smo kreirali ulazni tok datoteke i pohranili ga u varijablu 'a'. Zatim smo upotrijebili metodu 'a.skip(5)', koja će preskočiti prvih 5 bajtova datoteke. Zatim smo ispisali preostale znakove datoteke pomoću metode 'read()' unutar while petlje. Konačno, zatvorili smo ulazni tok datoteke metodom 'close()'.
Ispod je snimak zaslona terminala nakon kompajliranja i pokretanja koda. Kao što vidimo, prikazuje se samo 'Ipsum' jer smo preskočili prvih 5 bajtova pomoću metode 'skip()'.
Zaključak
U ovom smo članku raspravljali o upotrebi klase File Input Stream i njezinim različitim metodama; read(), available(), skip() i close(). Koristili smo ove metode za čitanje prvog elementa datoteke pomoću metoda read() i close(). Zatim čitamo cijelu datoteku kroz iterativni pristup i korištenjem istih metoda. Zatim smo upotrijebili raspoloživu() metodu za određivanje broja bajtova prisutnih na početku i završetku datoteke. Nakon toga smo upotrijebili metodu skip() za preskakanje nekoliko bajtova prije čitanja datoteke, što nam je omogućilo da dobijemo specifične podatke koji su nam potrebni.