V tej vadnici bomo s pomočjo primerov spoznali Java FileInputStream in njegove metode.
FileInputStream
Razred java.io
paket se lahko uporablja za branje podatkov (v bajtih) iz datotek.
Razširja InputStream
abstraktni 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.FileInputStream
paket. 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
FileInputStream
Razred določa izvedb za različne načine predstaviti v InputStream
razredu.
metoda read ()
read()
- prebere en bajt iz datotekeread(byte() array)
- bere bajte iz datoteke in shrani v določeno matrikoread(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
available()
Metodo najprej uporabimo za preverjanje števila razpoložljivih bajtov v vhodnem toku datoteke.- Nato smo
read()
metodo trikrat uporabili za branje 3 bajtov iz vhodnega toka datoteke. - 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, FileChannel povezan 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).