Java InputStream (s příkladem)

V tomto kurzu se na příkladu dozvíme o třídě Java InputStream a jejích metodách.

InputStreamTřída java.iobalíčku je abstraktní nadtřída, který představuje vstupní proud bajtů.

Jelikož InputStreamjde o abstraktní třídu, není sama o sobě užitečná. Jeho podtřídy však lze použít ke čtení dat.

Podtřídy InputStream

Abychom mohli využít funkčnost InputStream, můžeme použít její podtřídy. Někteří z nich jsou:

  • FileInputStream
  • ByteArrayInputStream
  • ObjectInputStream

O všech těchto podtřídách se dozvíme v dalším kurzu.

Vytvořte InputStream

Abychom mohli vytvořit InputStream, musíme java.io.InputStreamnejprve importovat balíček. Jakmile importujeme balíček, můžeme vytvořit vstupní proud takto.

 // Creates an InputStream InputStream object1 = new FileInputStream(); 

Zde jsme vytvořili vstupní proud pomocí FileInputStream. Je to proto, že InputStreamjde o abstraktní třídu. Proto nemůžeme vytvořit objekt InputStream.

Poznámka : Můžeme také vytvořit vstupní proud z jiných podtříd třídy InputStream.

Metody InputStream

InputStreamTřída poskytuje různé metody, které jsou implementovány jejích podtříd. Zde jsou některé z běžně používaných metod:

  • read() - načte jeden bajt dat ze vstupního proudu
  • read(byte() array) - čte bajty ze streamu a ukládá je do zadaného pole
  • available() - vrátí počet bajtů dostupných ve vstupním proudu
  • mark() - označí pozici ve vstupním proudu, do které byla načtena data
  • reset() - vrátí ovládací prvek do bodu v proudu, kde byla nastavena značka
  • markSupported()- zkontroluje, zda je v proudu podporována metoda mark()areset()
  • skips() - přeskočí a zahodí zadaný počet bajtů ze vstupního proudu
  • close() - zavře vstupní proud

Příklad: InputStream pomocí FileInputStream

Zde je způsob, jak můžeme implementovat InputStreampomocí FileInputStreamtřídy.

Předpokládejme, že máme soubor s názvem input.txt s následujícím obsahem.

 This is a line of text inside the file. 

Zkusme tento soubor přečíst pomocí FileInputStream(podtřídy 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ýstup

 Available bytes in the file: 35 Data read from the file: This is a line of text inside the file 

Ve výše uvedeném příkladu jsme vytvořili vstupní proud pomocí FileInputStreamtřídy. Vstupní proud je propojen se souborem input.txt .

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

Abychom mohli načíst data ze souboru input.txt , implementovali jsme tyto dvě metody.

 input.read(array); // to read data from the input stream input.close(); // to close the input stream 

Další informace najdete v Java InputStream (oficiální dokumentace Java).

Zajímavé články...