„Java FileInputStream“ (su pavyzdžiais)

Šioje pamokoje pavyzdžių pagalba sužinosime apie „Java FileInputStream“ ir jos metodus.

FileInputStreamKlasės java.iopakuotėje gali būti naudojamas skaityti duomenis (bytes) iš failų.

Tai pratęsia InputStreamabstrakčią klasę.

Prieš sužinodami apie tai FileInputStream, būtinai žinokite apie „Java“ failus.

Sukurkite „FileInputStream“

Norėdami sukurti failo įvesties srautą, pirmiausia turime importuoti java.io.FileInputStreampaketą. Kai importuosime paketą, štai kaip galime sukurti failų įvesties srautą „Java“.

1. Naudojant kelią į failą

 FileInputStream input = new FileInputStream(stringPath); 

Čia mes sukūrėme įvesties srautą, kuris bus susietas su keliu nurodytu failu.

2. Naudojant failo objektą

 FileInputStream input = new FileInputStream(File fileObject); 

Čia mes sukūrėme įvesties srautą, kuris bus susietas su failu, kurį nurodė fileObject.

„FileInputStream“ metodai

FileInputStreamKlasė suteikia realizacijos įvairių metodų pristatyti į InputStreamklasę.

skaityti () metodas

  • read() - nuskaito vieną baitą iš bylos
  • read(byte() array) - nuskaito baitus iš bylos ir saugo nurodytame masyve
  • read(byte() array, int start, int length) - nuskaito iš failo baitų, lygių ilgiui, skaičių ir saugo nurodytame masyve, pradedant nuo pozicijos pradžios

Tarkime, kad turime failą pavadinimu input.txt su tokiu turiniu.

 This is a line of text inside the file. 

Pabandykime perskaityti šį failą naudodami 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(); ) ) ) 

Rezultatas

 Duomenys faile: Tai yra teksto eilutė failo viduje. 

Ankstesniame pavyzdyje mes sukūrėme failo įvesties srautą, pavadintą įvestis. Įvesties srautas susietas su „ input.txt“ failu.

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

Norėdami nuskaityti duomenis iš failo, mes naudojome read()metodą „while“ cikle.

galima () metodas

Norėdami gauti galimų baitų skaičių, galime naudoti available()metodą. Pavyzdžiui,

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

Rezultatas

 Galimi baitai pradžioje: 39 Galimi baitai pabaigoje: 36 

Ankstesniame pavyzdyje

  1. Pirmiausia mes naudojome available()metodą, kad patikrintume galimų baitų skaičių failo įvesties sraute.
  2. Tada mes read()3 kartus naudojome metodą, kad nuskaitytume 3 baitus iš failo įvesties srauto.
  3. Perskaitę baitus, mes dar kartą patikrinome galimus baitus. Šį kartą turimi baitai sumažėjo 3.

praleisti () metodas

Norėdami išmesti ir praleisti nurodytą skaičių baitų, galime naudoti skip()metodą. Pavyzdžiui,

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

Rezultatas

 Įvesties srautas praleidus 5 baitus: yra teksto eilutė failo viduje. 

Ankstesniame pavyzdyje mes naudojome skip()metodą praleisti 5 baitus duomenų iš failo įvesties srauto. Taigi baitai, vaizduojantys tekstą „Tai“ , nėra skaitomi iš įvesties srauto.

uždaryti () metodas

Norėdami uždaryti failo įvesties srautą, galime naudoti close()metodą. Iškvietus close()metodą, negalime naudoti įvesties srauto duomenims nuskaityti.

Visuose aukščiau pateiktuose pavyzdžiuose mes naudojome close()metodą, kad uždarytume failo įvesties srautą.

Kiti FileInputStream metodai

Metodai Aprašymai
finalize() užtikrina close()metodo iškvietimą
getChannel() grąžina objektą, FileChannelsusietą su įvesties srautu
getFD() grąžina failo aprašą, susietą su įvesties srautu
mark() pažymėkite įvesties srauto vietą, iki kurios duomenys buvo perskaityti
reset() grąžina valdiklį į tašką įvesties sraute, kuriame buvo nustatytas ženklas

Norėdami sužinoti daugiau, apsilankykite „Java FileInputStream“ (oficiali „Java“ dokumentacija).

Įdomios straipsniai...