V tej vadnici bomo s pomočjo primerov spoznali Java ByteArrayInputStream in njene metode.
ByteArrayInputStreamRazred java.iopaket se lahko uporablja za branje paleto vhodnih podatkov (v bajtih).
Razširja InputStreamabstraktni razred.

Opomba : ByteArrayInputStreamVhodni tok se ustvari z uporabo bajtov bajtov. Vključuje notranjo matriko za shranjevanje podatkov o tej bajtni matriki.
Ustvarite ByteArrayInputStream
Če želite ustvariti vhodni tok bajtne matrike, moramo najprej uvoziti java.io.ByteArrayInputStreampaket. Ko uvozimo paket, je tukaj opisano, kako lahko ustvarimo vhodni tok.
 // Creates a ByteArrayInputStream that reads entire array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr); 
Tu smo ustvarili vhodni tok, ki bere celotne podatke iz arrpolja. Lahko pa ustvarimo tudi vhodni tok, ki bere le nekatere podatke iz polja.
 // Creates a ByteArrayInputStream that reads a portion of array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr, int start, int length); 
Tu vhodni tok bere število bajtov, enako dolžini iz polja, začenši z začetnega položaja.
Metode ByteArrayInputStream
ByteArrayInputStreamRazred določa izvedb za različne načine predstaviti v InputStreamrazredu.
metoda read ()
read()- bere en bajt iz polja, ki je prisotno v vhodnem tokuread(byte() array)- bere bajte iz vhodnega toka in shrani v določeno matrikoread(byte() array, int start, int length)- iz toka prebere število bajtov, enako dolžini, in shrani v določeno matriko, začenši z začetkom položaja
Primer: ByteArrayInputStream za branje podatkov
 import java.io.ByteArrayInputStream; public class Main ( public static void main(String() args) ( // Creates an array of byte byte() array = (1, 2, 3, 4); try ( ByteArrayInputStream input = new ByteArrayInputStream(array); System.out.print("The bytes read from the input stream: "); for(int i= 0; i < array.length; i++) ( // Reads the bytes int data = input.read(); System.out.print(data + ", "); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 
Izhod
Bajti, prebrani iz vhodnega toka: 1, 2, 3, 4,
V zgornjem primeru smo ustvarili vhodni tok bajtnega polja z imenom input.
 ByteArrayInputStream input = new ByteArrayInputStream(array); 
Tu vhodni tok vključuje vse podatke iz podane matrike. Za branje podatkov iz vhodnega toka smo uporabili read()metodo.
na voljo () Metoda
Za pridobitev števila razpoložljivih bajtov v vhodnem toku lahko uporabimo available()metodo. Na primer
 import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( // Creates an array of bytes byte() array = ( 1, 2, 3, 4 ); try ( ByteArrayInputStream input = new ByteArrayInputStream(array); // Returns the available number of bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 2 bytes from the input stream input.read(); input.read(); // Returns the available number of bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 
Izhod
Na voljo bajti na začetku: 4 Na voljo bajti na koncu: 2
V zgornjem primeru je
- Z 
available()metodo smo preverili število razpoložljivih bajtov v vhodnem toku. - Nato smo 
read()metodo dvakrat uporabili za branje 2 bajtov iz vhodnega toka. - Zdaj, ko smo prebrali 2 bajta, smo preverili razpoložljive bajte. Tokrat so se razpoložljivi bajti zmanjšali za 2.
 
preskoči () Metoda
Če želimo zavreči in preskočiti določeno število bajtov, lahko uporabimo skip()metodo. Na primer
 import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( // Create an array of bytes byte() array = ( 1, 2, 3, 4 ); try ( ByteArrayInputStream input = new ByteArrayInputStream(array); // Using the skip() method input.skip(2); System.out.print("Input stream after skipping 2 bytes: "); int data = input.read(); while (data != -1) ( System.out.print(data + ", "); data = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 
Izhod
Vhodni tok po preskoku 2 bajtov: 3, 4,
V zgornjem primeru smo uporabili metodo skip () za preskok 2 bajtov podatkov iz vhodnega toka. Zato 1 in 2 ne bereta iz vhodnega toka.
metoda close ()
Za zapiranje vhodnega toka lahko uporabimo close()metodo.
Vendar close()metoda pri ByteArrayInputStreampouku nima učinka . Metode tega razreda lahko uporabljamo tudi po close()klicu metode.
Druge metode ByteArrayInputStream
| Metode | Opisi | 
|---|---|
finalize() |  zagotavlja, da je close()metoda poklicana |  
mark() |  označuje položaj v vhodnem toku, do katerega so bili prebrani podatki | 
reset() |  vrne kontrolnik na točko v vhodnem toku, kjer je bila nastavljena oznaka | 
markSupported() |  preveri, ali vhodni tok podpira mark()inreset() |  
Če želite izvedeti več, obiščite Java ByteArrayInputStream (uradna dokumentacija Java).








