V tej vadnici bomo s pomočjo primera spoznali razred Java InputStream in njegove metode.
InputStream
Razred java.io
paketa je abstraktna nadrazreda, ki predstavlja vhodni tok bajtov.
Ker InputStream
je abstraktni razred, sam po sebi ni koristen. Vendar lahko njegove podrazrede uporabljamo za branje podatkov.
Podrazredi InputStream
Za uporabo funkcionalnosti InputStream
lahko 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.InputStream
paket. 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 InputStream
je abstraktni razred. Zato ne moremo ustvariti predmeta InputStream
.
Opomba : Vhodni tok lahko ustvarimo tudi iz drugih podrazredov InputStream
.
Metode InputStream
InputStream
Razred določa različne metode, ki jih izvajajo njegove podrazrede. Tu je nekaj najpogosteje uporabljenih metod:
read()
- prebere en bajt podatkov iz vhodnega tokaread(byte() array)
- bere bajte iz toka in shrani v določeno matrikoavailable()
- vrne število bajtov, ki je na voljo v vhodnem tokumark()
- označi položaj v vhodnem toku, do katerega so bili prebrani podatkireset()
- vrne kontrolnik na točko v toku, kjer je bila nastavljena oznakamarkSupported()
- preveri, ali je metodamark()
inreset()
podprta v tokuskips()
- preskoči in zavrže določeno število bajtov iz vhodnega tokaclose()
- zapre vhodni tok
Primer: InputStream z uporabo FileInputStream
Tukaj je opisano, kako lahko izvedemo InputStream
uporabo FileInputStream
razreda.
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 FileInputStream
razredom 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).