Java InputStream (s primjerom)

U ovom uputstvu naučit ćemo o klasi Java InputStream i njezinim metodama uz pomoć primjera.

InputStreamKlasa java.iopaketa je apstraktna superclass koji predstavlja ulazni tok bajta.

Budući da InputStreamje apstraktna klasa, ona sama po sebi nije korisna. Međutim, njegove se podrazrede mogu koristiti za čitanje podataka.

Podrazredi InputStreama

Da bismo koristili funkcionalnost InputStream, možemo koristiti njegove podrazrede. Neki od njih su:

  • FileInputStream
  • ByteArrayInputStream
  • ObjectInputStream

O svim tim podrazredima naučit ćemo u sljedećem vodiču.

Stvorite InputStream

Da bismo stvorili InputStream, prvo moramo uvesti java.io.InputStreampaket. Nakon što uvozimo paket, evo kako možemo stvoriti ulazni tok.

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

Ovdje smo stvorili ulazni tok pomoću FileInputStream. To je zato što InputStreamje apstraktna klasa. Stoga ne možemo stvoriti objekt od InputStream.

Napomena : Ulazni tok možemo stvoriti i iz drugih podrazreda InputStream.

Metode InputStream

InputStreamKlasa pruža različite metode koje se provode njegove potklase. Evo nekoliko najčešće korištenih metoda:

  • read() - čita jedan bajt podataka iz ulaznog toka
  • read(byte() array) - čita bajtove iz streama i pohranjuje u navedeni niz
  • available() - vraća broj bajtova dostupan u ulaznom toku
  • mark() - označava položaj u ulaznom toku do kojeg su podaci pročitani
  • reset() - vraća kontrolu na točku u toku gdje je postavljena oznaka
  • markSupported()- provjerava je li metoda mark()and reset()podržana u streamu
  • skips() - preskače i odbacuje navedeni broj bajtova iz ulaznog toka
  • close() - zatvara ulazni tok

Primjer: InputStream pomoću FileInputStream

Evo kako možemo implementirati InputStreampomoću FileInputStreamklase.

Pretpostavimo da imamo datoteku koja se zove input.txt sa sljedećim sadržajem.

 This is a line of text inside the file. 

Pokušajmo pročitati ovu datoteku koristeći FileInputStream(podrazred od 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(); ) ) ) 

Izlaz

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

U gornjem primjeru stvorili smo ulazni tok koristeći FileInputStreamklasu. Ulazni tok povezan je s datotekom input.txt .

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

Da bismo čitali podatke iz datoteke input.txt , implementirali smo ove dvije metode.

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

Da biste saznali više, posjetite Java InputStream (službena Java dokumentacija).

Zanimljivi članci...