Java FileInputStream (s primjerima)

U ovom ćemo uputstvu uz primjere naučiti o Java FileInputStream i njegovim metodama.

FileInputStreamRazred java.iopaket može se koristiti za čitanje podataka (u bajtovima) iz datoteka.

Proširuje InputStreamapstraktnu klasu.

Prije nego što naučimo nešto FileInputStreamo Java datotekama.

Stvorite FileInputStream

Da bismo stvorili ulazni tok datoteke, prvo moramo uvesti java.io.FileInputStreampaket. 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

FileInputStreamKlasa pruža implementacije za različite metode prezentirati u InputStreamrazredu.

read () metoda

  • read() - čita jedan bajt iz datoteke
  • read(byte() array) - čita bajtove iz datoteke i pohranjuje u navedeni niz
  • read(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,

  1. available()Metodu najprije koristimo za provjeru broja dostupnih bajtova u ulaznom toku datoteke.
  2. Tada smo read()metodu koristili 3 puta za čitanje 3 bajta iz ulaznog toka datoteke.
  3. 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 FileChannelpridruž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).

Zanimljivi članci...