Java FileInputStream (s príkladmi)

V tomto tutoriále sa pomocou príkladov dozvieme o Java FileInputStream a jeho metódach.

FileInputStreamTrieda java.ioobalu možno použiť na čítanie dát (v bytoch) zo súborov.

Rozširuje InputStreamabstraktnú 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.FileInputStreambalí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

FileInputStreamTrieda poskytuje implementácie pre rôzne metódy prezentovať vo InputStreamtriede.

metóda read ()

  • read() - načíta zo súboru jeden bajt
  • read(byte() array) - načíta bajty zo súboru a uloží ich do zadaného poľa
  • read(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

  1. Najprv pomocou tejto available()metódy skontrolujeme počet dostupných bajtov vo vstupnom prúde súboru.
  2. Potom sme read()metódu použili trikrát na načítanie 3 bajtov zo vstupného toku súborov.
  3. 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 FileChannelpriradený 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).

Zaujímavé články...