U ovom uputstvu naučit ćemo o klasi Java InputStream i njezinim metodama uz pomoć primjera.
InputStream
Klasa java.io
paketa je apstraktna superclass koji predstavlja ulazni tok bajta.
Budući da InputStream
je 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.InputStream
paket. 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 InputStream
je apstraktna klasa. Stoga ne možemo stvoriti objekt od InputStream
.
Napomena : Ulazni tok možemo stvoriti i iz drugih podrazreda InputStream
.
Metode InputStream
InputStream
Klasa 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 tokaread(byte() array)
- čita bajtove iz streama i pohranjuje u navedeni nizavailable()
- vraća broj bajtova dostupan u ulaznom tokumark()
- označava položaj u ulaznom toku do kojeg su podaci pročitanireset()
- vraća kontrolu na točku u toku gdje je postavljena oznakamarkSupported()
- provjerava je li metodamark()
andreset()
podržana u streamuskips()
- preskače i odbacuje navedeni broj bajtova iz ulaznog tokaclose()
- zatvara ulazni tok
Primjer: InputStream pomoću FileInputStream
Evo kako možemo implementirati InputStream
pomoću FileInputStream
klase.
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 FileInputStream
klasu. 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).