U ovom ćemo uputstvu uz primjere naučiti o Java FileInputStream i njegovim metodama.
FileInputStream
Razred java.io
paket može se koristiti za čitanje podataka (u bajtovima) iz datoteka.
Proširuje InputStream
apstraktnu klasu.
Prije nego što naučimo nešto FileInputStream
o Java datotekama.
Stvorite FileInputStream
Da bismo stvorili ulazni tok datoteke, prvo moramo uvesti java.io.FileInputStream
paket. Nakon što uvozimo paket, evo kako možemo stvoriti tok unosa datoteka u Javi.
1. Korištenje puta do datoteke
FileInputStream input = new FileInputStream(stringPath);
Ovdje smo stvorili ulazni tok koji će biti povezan s datotekom navedenom putem.
2. Korištenje objekta datoteke
FileInputStream input = new FileInputStream(File fileObject);
Ovdje smo stvorili ulazni tok koji će biti povezan s datotekom koju je odredio fileObject
.
Metode FileInputStream
FileInputStream
Klasa pruža implementacije za različite metode prezentirati u InputStream
razredu.
read () metoda
read()
- čita jedan bajt iz datotekeread(byte() array)
- čita bajtove iz datoteke i pohranjuje u navedeni nizread(byte() array, int start, int length)
- čita broj bajtova jednak duljini iz datoteke i pohranjuje u navedeni niz počevši od početka položaja
Pretpostavimo da imamo datoteku koja se zove input.txt sa sljedećim sadržajem.
This is a line of text inside the file.
Pokušajmo pročitati ovu datoteku pomoću FileInputStream
.
import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( FileInputStream input = new FileInputStream("input.txt"); System.out.println("Data in the file: "); // Reads the first byte int i = input.read(); while(i != -1) ( System.out.print((char)i); // Reads next byte from the file i = input.read(); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Izlaz
Podaci u datoteci: Ovo je redak teksta unutar datoteke.
U gornjem primjeru stvorili smo ulazni tok datoteke pod nazivom input. Ulazni tok povezan je s datotekom input.txt .
FileInputStream input = new FileInputStream("input.txt");
Za čitanje podataka iz datoteke koristili smo read()
metodu unutar while petlje.
dostupna () metoda
Da bismo dobili broj dostupnih bajtova, možemo koristiti available()
metodu. Na primjer,
import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Returns the number of available bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 3 bytes from the file input.read(); input.read(); input.read(); // Returns the number of available bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Izlaz
Dostupni bajtovi na početku: 39 Dostupni bajtovi na kraju: 36
U gornjem primjeru,
available()
Metodu najprije koristimo za provjeru broja dostupnih bajtova u ulaznom toku datoteke.- Tada smo
read()
metodu koristili 3 puta za čitanje 3 bajta iz ulaznog toka datoteke. - Sada, nakon čitanja bajtova, ponovno smo provjerili dostupne bajtove. Ovaj put su se dostupni bajtovi smanjili za 3.
preskoči () Metoda
Da bismo odbacili i preskočili navedeni broj bajtova, možemo se poslužiti skip()
metodom. Na primjer,
import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Skips the 5 bytes input.skip(5); System.out.println("Input stream after skipping 5 bytes:"); // Reads the first byte int i = input.read(); while (i != -1) ( System.out.print((char) i); // Reads next byte from the file i = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Izlaz
Ulazni tok nakon preskakanja 5 bajtova: redak je teksta unutar datoteke.
U gornjem primjeru koristili smo skip()
metodu za preskakanje 5 bajtova podataka iz ulaznog toka datoteke. Stoga se bajtovi koji predstavljaju tekst "Ovo" ne čitaju iz ulaznog toka.
close () Metoda
Da bismo zatvorili tok unosa datoteke, možemo koristiti close()
metodu. Jednom kada se close()
metoda pozove, ne možemo koristiti ulazni tok za čitanje podataka.
U svim gornjim primjerima koristili smo close()
metodu za zatvaranje ulaznog toka datoteke.
Ostale metode FileInputStreama
Metode | Opisi |
---|---|
finalize() | osigurava pozivanje close() metode |
getChannel() | vraća objekt FileChannel pridružen ulaznom toku |
getFD() | vraća deskriptor datoteke povezan s ulaznim tokom |
mark() | označite položaj u ulaznom toku do kojeg su podaci pročitani |
reset() | vraća kontrolu na točku u ulaznom toku gdje je postavljena oznaka |
Da biste saznali više, posjetite Java FileInputStream (službena Java dokumentacija).