I denne veiledningen vil vi lære om Java ByteArrayInputStream og dens metoder ved hjelp av eksempler.
Den ByteArrayInputStreamklasse av java.iopakken kan brukes til å lese en rekke inngangsdata (i byte).
Det utvider den InputStreamabstrakte klassen.

Merk : I ByteArrayInputStream, blir inngangsstrømmen opprettet ved hjelp av bytesamlingen. Den inkluderer en intern matrise for å lagre data for det aktuelle byte-arrayet.
Opprett en ByteArrayInputStream
For å opprette en inngangsstrøm for byte-matriser, må vi først importere java.io.ByteArrayInputStreampakken. Når vi har importert pakken, kan du lage en inngangsstrøm her.
 // Creates a ByteArrayInputStream that reads entire array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr); 
Her har vi opprettet en inngangsstrøm som leser hele data fra arrmatrisen. Vi kan imidlertid også opprette inngangsstrømmen som bare leser noen data fra matrisen.
 // Creates a ByteArrayInputStream that reads a portion of array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr, int start, int length); 
Her leser inngangsstrømmen antall byte som er lik lengden fra matrisen fra startposisjonen.
Metoder for ByteArrayInputStream
Den ByteArrayInputStreamklasse gir implementeringer for forskjellige metoder for å medføre i InputStreamklassen.
les () Metode
read()- leser enkeltbyten fra matrisen i inngangsstrømmenread(byte() array)- leser byte fra inngangsstrømmen og lagrer i den angitte matrisenread(byte() array, int start, int length)- leser antall byte som er lik lengden fra strømmen og lagrer i den spesifiserte matrisen fra posisjonsstart
Eksempel: ByteArrayInputStream for å lese data
 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(); ) ) ) 
Produksjon
Byte lest fra inngangsstrømmen: 1, 2, 3, 4,
I eksemplet ovenfor har vi opprettet en byte-matrisestrøm med navnet input.
 ByteArrayInputStream input = new ByteArrayInputStream(array); 
Her inkluderer inngangsstrømmen alle dataene fra den spesifiserte matrisen. For å lese data fra inngangsstrømmen har vi brukt read()metoden.
tilgjengelig () Metode
For å få antall tilgjengelige byte i inngangsstrømmen, kan vi bruke available()metoden. For eksempel,
 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(); ) ) ) 
Produksjon
Tilgjengelige byte i begynnelsen: 4 Tilgjengelige byte på slutten: 2
I eksemplet ovenfor,
- Vi har brukt 
available()metoden for å sjekke antall tilgjengelige byte i inngangsstrømmen. - Vi har da brukt 
read()metoden to ganger for å lese 2 byte fra inngangsstrømmen. - Nå, etter å ha lest de to byte, har vi sjekket tilgjengelige byte. Denne gangen reduserte de tilgjengelige byte med 2.
 
skip () Metode
For å forkaste og hoppe over det angitte antallet byte, kan vi bruke skip()metoden. For eksempel,
 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(); ) ) ) 
Produksjon
Inngangsstrøm etter å ha hoppet over 2 byte: 3, 4,
I eksemplet ovenfor har vi brukt skip () -metoden til å hoppe over 2 byte data fra inngangsstrømmen. Derfor blir ikke 1 og 2 lest fra inngangsstrømmen.
lukk () Metode
For å lukke inngangsstrømmen kan vi bruke close()metoden.
Men det close()har metoden ingen effekt i ByteArrayInputStreamklassen. Vi kan bruke metodene i denne klassen selv etter at close()metoden er kalt.
Andre metoder for ByteArrayInputStream
| Metoder | Beskrivelser | 
|---|---|
finalize() |  sørger for at close()metoden blir kalt |  
mark() |  markerer posisjonen i inngangsstrømmen som data er lest opp til | 
reset() |  returnerer kontrollen til punktet i inngangsstrømmen der merket ble satt | 
markSupported() |  sjekker om inngangsstrømmen støtter mark()ogreset() |  
For å lære mer, besøk Java ByteArrayInputStream (offisiell Java-dokumentasjon).








