Java FileInputStream (s primeri)

V tej vadnici bomo s pomočjo primerov spoznali Java FileInputStream in njegove metode.

FileInputStreamRazred java.iopaket se lahko uporablja za branje podatkov (v bajtih) iz datotek.

Razširja InputStreamabstraktni razred.

Preden se naučimo FileInputStream, se prepričajte, da ste vedeli o datotekah Java.

Ustvarite FileInputStream

Če želite ustvariti vhodni tok datoteke, moramo najprej uvoziti java.io.FileInputStreampaket. Ko uvozimo paket, je tukaj opisano, kako lahko v Javi ustvarimo tok vnosa datotek.

1. Uporaba poti do datoteke

 FileInputStream input = new FileInputStream(stringPath); 

Tu smo ustvarili vhodni tok, ki bo povezan z datoteko, določeno s potjo.

2. Uporaba predmeta datoteke

 FileInputStream input = new FileInputStream(File fileObject); 

Tu smo ustvarili vhodni tok, ki bo povezan z datoteko, ki jo je določil fileObject.

Metode FileInputStream

FileInputStreamRazred določa izvedb za različne načine predstaviti v InputStreamrazredu.

metoda read ()

  • read() - prebere en bajt iz datoteke
  • read(byte() array) - bere bajte iz datoteke in shrani v določeno matriko
  • read(byte() array, int start, int length) - iz datoteke prebere število bajtov, enako dolžini, in shrani v določeno matriko, začenši z začetkom položaja

Recimo, da imamo datoteko z imenom input.txt z naslednjo vsebino.

 This is a line of text inside the file. 

Poskusimo prebrati to datoteko z uporabo 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(); ) ) ) 

Izhod

 Podatki v datoteki: To je vrstica besedila znotraj datoteke. 

V zgornjem primeru smo ustvarili vhodni tok datoteke z imenom input. Vhodni tok je povezan z datoteko input.txt .

 FileInputStream input = new FileInputStream("input.txt"); 

Za branje podatkov iz datoteke smo uporabili read()metodo znotraj zanke while.

na voljo () Metoda

Za pridobitev števila razpoložljivih bajtov lahko uporabimo available()metodo. Na primer

 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(); ) ) ) 

Izhod

 Razpoložljivi bajti na začetku: 39 Na voljo bajti na koncu: 36 

V zgornjem primeru je

  1. available()Metodo najprej uporabimo za preverjanje števila razpoložljivih bajtov v vhodnem toku datoteke.
  2. Nato smo read()metodo trikrat uporabili za branje 3 bajtov iz vhodnega toka datoteke.
  3. Zdaj smo po branju bajtov ponovno preverili razpoložljive bajte. Tokrat so se razpoložljivi bajti zmanjšali za 3.

preskoči () Metoda

Če želimo zavreči in preskočiti določeno število bajtov, lahko uporabimo skip()metodo. Na primer

 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(); ) ) ) 

Izhod

 Vhodni tok po preskoku 5 bajtov: je vrstica besedila znotraj datoteke. 

V zgornjem primeru smo skip()metodo uporabili za preskok 5 bajtov podatkov iz vhodnega toka datoteke. Zato se bajti, ki predstavljajo besedilo "To" , ne berejo iz vhodnega toka.

metoda close ()

Za zapiranje vhodnega toka datoteke lahko uporabimo close()metodo. Ko je close()metoda enkrat poklicana, ne moremo uporabiti vhodnega toka za branje podatkov.

V vseh zgornjih primerih smo close()metodo uporabili za zapiranje vhodnega toka datoteke.

Druge metode FileInputStream

Metode Opisi
finalize() zagotavlja, da je close()metoda poklicana
getChannel() vrne objekt, FileChannelpovezan z vhodnim tokom
getFD() vrne deskriptor datoteke, povezan z vhodnim tokom
mark() označite položaj v vhodnem toku, do katerega so bili prebrani podatki
reset() vrne kontrolnik na točko v vhodnem toku, kjer je bila nastavljena oznaka

Če želite izvedeti več, obiščite Java FileInputStream (uradna dokumentacija Java).

Zanimive Članki...