Šioje pamokoje pavyzdžių pagalba sužinosime apie „Java FileInputStream“ ir jos metodus.
FileInputStream
Klasės java.io
pakuotėje gali būti naudojamas skaityti duomenis (bytes) iš failų.
Tai pratęsia InputStream
abstrakč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.FileInputStream
paketą. 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
FileInputStream
Klasė suteikia realizacijos įvairių metodų pristatyti į InputStream
klasę.
skaityti () metodas
read()
- nuskaito vieną baitą iš bylosread(byte() array)
- nuskaito baitus iš bylos ir saugo nurodytame masyveread(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
- Pirmiausia mes naudojome
available()
metodą, kad patikrintume galimų baitų skaičių failo įvesties sraute. - Tada mes
read()
3 kartus naudojome metodą, kad nuskaitytume 3 baitus iš failo įvesties srauto. - 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ą, FileChannel susietą 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).