Java InputStream (s primerom)

V tej vadnici bomo s pomočjo primera spoznali razred Java InputStream in njegove metode.

InputStreamRazred java.iopaketa je abstraktna nadrazreda, ki predstavlja vhodni tok bajtov.

Ker InputStreamje abstraktni razred, sam po sebi ni koristen. Vendar lahko njegove podrazrede uporabljamo za branje podatkov.

Podrazredi InputStream

Za uporabo funkcionalnosti InputStreamlahko uporabimo njegove podrazrede. Nekateri med njimi so:

  • FileInputStream
  • ByteArrayInputStream
  • ObjectInputStream

O vseh teh podrazredih bomo izvedeli v naslednji vadnici.

Ustvari InputStream

Če želite ustvariti InputStream, moramo najprej uvoziti java.io.InputStreampaket. Ko uvozimo paket, tukaj je opisano, kako lahko ustvarimo vhodni tok.

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

Tukaj smo z uporabo ustvarili vhodni tok FileInputStream. To je zato, ker InputStreamje abstraktni razred. Zato ne moremo ustvariti predmeta InputStream.

Opomba : Vhodni tok lahko ustvarimo tudi iz drugih podrazredov InputStream.

Metode InputStream

InputStreamRazred določa različne metode, ki jih izvajajo njegove podrazrede. Tu je nekaj najpogosteje uporabljenih metod:

  • read() - prebere en bajt podatkov iz vhodnega toka
  • read(byte() array) - bere bajte iz toka in shrani v določeno matriko
  • available() - vrne število bajtov, ki je na voljo v vhodnem toku
  • mark() - označi položaj v vhodnem toku, do katerega so bili prebrani podatki
  • reset() - vrne kontrolnik na točko v toku, kjer je bila nastavljena oznaka
  • markSupported()- preveri, ali je metoda mark()in reset()podprta v toku
  • skips() - preskoči in zavrže določeno število bajtov iz vhodnega toka
  • close() - zapre vhodni tok

Primer: InputStream z uporabo FileInputStream

Tukaj je opisano, kako lahko izvedemo InputStreamuporabo FileInputStreamrazreda.

Recimo, da imamo datoteko z imenom input.txt z naslednjo vsebino.

 This is a line of text inside the file. 

Poskusimo prebrati to datoteko z uporabo FileInputStream(podrazred 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(); ) ) ) 

Izhod

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

V zgornjem primeru smo z FileInputStreamrazredom ustvarili vhodni tok . Vhodni tok je povezan z datoteko input.txt .

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

Za branje podatkov iz datoteke input.txt smo uporabili ti dve metodi.

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

Če želite izvedeti več, obiščite Java InputStream (uradna dokumentacija Java).

Zanimive Članki...