V tomto tutoriále sa pomocou príkladu dozvieme o triede Java InputStream a jej metódach.
InputStream
Trieda java.io
balíčka je abstraktný nadtřída, ktorý predstavuje vstupný prúd bajtov.
Pretože InputStream
ide o abstraktnú triedu, nie je sama osebe užitočná. Jeho podtriedy však možno použiť na čítanie údajov.
Podtriedy InputStream
Aby sme mohli využiť funkčnosť InputStream
, môžeme použiť jej podtriedy. Niektoré z nich sú:
- FileInputStream
- ByteArrayInputStream
- ObjectInputStream
O všetkých týchto podtriedach sa dozvieme v ďalšom návode.
Vytvorte InputStream
Aby sme mohli vytvoriť InputStream, musíme najskôr importovať java.io.InputStream
balík. Po importovaní balíka môžeme vytvoriť vstupný prúd.
// Creates an InputStream InputStream object1 = new FileInputStream();
Tu sme vytvorili vstupný prúd pomocou FileInputStream
. Je to preto, lebo InputStream
ide o abstraktnú triedu. Preto nemôžeme vytvoriť objekt InputStream
.
Poznámka : Vstupný tok môžeme vytvoriť aj z iných podtried triedy InputStream
.
Metódy InputStream
InputStream
Trieda poskytuje rôzne metódy, ktoré sú implementované jej podtriedy. Tu uvádzame niektoré z bežne používaných metód:
read()
- načíta jeden bajt dát zo vstupného tokuread(byte() array)
- číta bajty z streamu a ukladá ich do zadaného poľaavailable()
- vráti počet bajtov dostupných vo vstupnom tokumark()
- označí pozíciu vo vstupnom toku, do ktorej boli načítané údajereset()
- vráti ovládací prvok do bodu v streame, kde bola nastavená značkamarkSupported()
- skontroluje, či je v prúde podporovaná metódamark()
areset()
skips()
- preskočí a zahodí zadaný počet bajtov zo vstupného tokuclose()
- uzavrie vstupný prúd
Príklad: InputStream pomocou FileInputStream
Takto môžeme implementovať InputStream
použitie FileInputStream
triedy.
Predpokladajme, že máme súbor s názvom input.txt s nasledujúcim obsahom.
This is a line of text inside the file.
Pokúsme sa tento súbor prečítať pomocou FileInputStream
(podtriedy InputStream
).
import java.io.FileInputStream; import java.io.InputStream; public class Main ( public static void main(String args()) ( byte() array = new byte(100); try ( InputStream input = new FileInputStream("input.txt"); System.out.println("Available bytes in the file: " + input.available()); // Read byte from the input stream input.read(array); System.out.println("Data read from the file: "); // Convert byte array into string String data = new String(array); System.out.println(data); // Close the input stream input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Výkon
Available bytes in the file: 35 Data read from the file: This is a line of text inside the file
Vo vyššie uvedenom príklade sme vytvorili vstupný tok pomocou FileInputStream
triedy. Vstupný prúd je prepojený so súborom input.txt .
InputStream input = new FileInputStream("input.txt");
Na načítanie údajov zo súboru input.txt sme implementovali tieto dve metódy.
input.read(array); // to read data from the input stream input.close(); // to close the input stream
Ak sa chcete dozvedieť viac, navštívte Java InputStream (oficiálna dokumentácia Java).