V tomto tutoriále sa pomocou príkladov dozvieme o Java FileInputStream a jeho metódach.
FileInputStream
Trieda java.io
obalu možno použiť na čítanie dát (v bytoch) zo súborov.
Rozširuje InputStream
abstraktnú triedu.
Skôr ako sa dozvieme niečo viac FileInputStream
, nezabudnite vedieť o súboroch Java.
Vytvorte FileInputStream
Aby sme vytvorili vstupný prúd súborov, musíme najskôr importovať java.io.FileInputStream
balík. Po importovaní balíka môžeme vytvoriť vstupný tok súborov v jazyku Java.
1. Pomocou cesty k súboru
FileInputStream input = new FileInputStream(stringPath);
Tu sme vytvorili vstupný tok, ktorý bude prepojený so súborom určeným cestou.
2. Použitie objektu súboru
FileInputStream input = new FileInputStream(File fileObject);
Tu sme vytvorili vstupný tok, ktorý bude prepojený so súborom uvedeným v fileObject
.
Metódy FileInputStream
FileInputStream
Trieda poskytuje implementácie pre rôzne metódy prezentovať vo InputStream
triede.
metóda read ()
read()
- načíta zo súboru jeden bajtread(byte() array)
- načíta bajty zo súboru a uloží ich do zadaného poľaread(byte() array, int start, int length)
- načíta počet bajtov rovných dĺžke zo súboru a uloží ich do určeného poľa počnúc začiatkom pozície
Predpokladajme, že máme súbor s názvom input.txt s nasledujúcim obsahom.
This is a line of text inside the file.
Skúsme tento súbor prečítať pomocou 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(); ) ) )
Výkon
Údaje v súbore: Toto je riadok textu vo vnútri súboru.
Vo vyššie uvedenom príklade sme vytvorili vstupný tok súborov s názvom input. Vstupný prúd je prepojený so súborom input.txt .
FileInputStream input = new FileInputStream("input.txt");
Na načítanie údajov zo súboru sme použili read()
metódu vo vnútri while cyklu.
metóda dostupná ()
Na získanie počtu dostupných bajtov môžeme použiť available()
metódu. Napríklad,
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(); ) ) )
Výkon
Dostupné bajty na začiatku: 39 Dostupné bajty na konci: 36
Vo vyššie uvedenom príklade
- Najprv pomocou tejto
available()
metódy skontrolujeme počet dostupných bajtov vo vstupnom prúde súboru. - Potom sme
read()
metódu použili trikrát na načítanie 3 bajtov zo vstupného toku súborov. - Teraz po prečítaní bajtov sme znova skontrolovali dostupné bajty. Dostupné bajty sa tentoraz znížili o 3.
metóda skip ()
Na zahodenie a preskočenie zadaného počtu bajtov môžeme použiť skip()
metódu. Napríklad,
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(); ) ) )
Výkon
Vstupný prúd po preskočení 5 bajtov: je riadok textu vo vnútri súboru.
Vo vyššie uvedenom príklade sme použili skip()
metódu na preskočenie 5 bajtov údajov zo vstupného toku súborov. Bajty predstavujúce text „This“ teda nie sú načítané zo vstupného toku.
metóda close ()
Na uzavretie vstupného toku súborov môžeme použiť túto close()
metódu. Po close()
zavolaní metódy nemôžeme použiť vstupný prúd na čítanie údajov.
Vo všetkých vyššie uvedených príkladoch sme použili close()
metódu na uzavretie vstupného toku súborov.
Ďalšie metódy FileInputStream
Metódy | Popisy |
---|---|
finalize() | zaisťuje close() volanie metódy |
getChannel() | vráti objekt FileChannel priradený k vstupnému toku |
getFD() | vráti deskriptor súboru spojený so vstupným tokom |
mark() | označte pozíciu vo vstupnom prúde, do ktorej boli načítané údaje |
reset() | vráti ovládací prvok do bodu vo vstupnom toku, kde bola nastavená značka |
Ak sa chcete dozvedieť viac, navštívte stránku Java FileInputStream (oficiálna dokumentácia Java).