În acest tutorial, vom afla despre Java ByteArrayInputStream și metodele sale cu ajutorul exemplelor.
ByteArrayInputStream
Clasa java.io
Pachetul poate fi utilizat pentru a citi o serie de date de intrare (în octeți).
Extinde InputStream
clasa abstractă.
Notă : În ByteArrayInputStream
, fluxul de intrare este creat folosind matricea de octeți. Include o matrice internă pentru stocarea datelor din matricea respectivă de octeți.
Creați un ByteArrayInputStream
Pentru a crea un flux de intrare în matrice de octeți, trebuie mai java.io.ByteArrayInputStream
întâi să importăm pachetul. Odată ce am importat pachetul, iată cum putem crea un flux de intrare.
// Creates a ByteArrayInputStream that reads entire array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr);
Aici, am creat un flux de intrare care citește date întregi din arr
matrice. Cu toate acestea, putem crea și fluxul de intrare care citește doar unele date din matrice.
// Creates a ByteArrayInputStream that reads a portion of array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr, int start, int length);
Aici fluxul de intrare citește numărul de octeți egal cu lungimea din matrice începând de la poziția de pornire.
Metode de ByteArrayInputStream
ByteArrayInputStream
Clasa oferă implementări pentru diferite metode prezintă în InputStream
clasă.
read () Metodă
read()
- citește octetul unic din tabloul prezent în fluxul de intrareread(byte() array)
- citește octeți din fluxul de intrare și stochează în matricea specificatăread(byte() array, int start, int length)
- citește numărul de octeți egal cu lungimea fluxului și stochează în matricea specificată începând de la începutul poziției
Exemplu: ByteArrayInputStream pentru citirea datelor
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(); ) ) )
Ieșire
Octetii citiți din fluxul de intrare: 1, 2, 3, 4,
În exemplul de mai sus, am creat un flux de intrare matrice de octeți numit input
.
ByteArrayInputStream input = new ByteArrayInputStream(array);
Aici, fluxul de intrare include toate datele din matricea specificată. Pentru a citi date din fluxul de intrare, am folosit read()
metoda.
disponibil () Metodă
Pentru a obține numărul de octeți disponibili în fluxul de intrare, putem folosi available()
metoda. De exemplu,
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(); ) ) )
Ieșire
Octiți disponibili la început: 4 Octiți disponibili la sfârșit: 2
În exemplul de mai sus,
- Am folosit
available()
metoda pentru a verifica numărul de octeți disponibili în fluxul de intrare. - Am folosit apoi
read()
metoda de 2 ori pentru a citi 2 octeți din fluxul de intrare. - Acum, după citirea celor 2 octeți, am verificat octeții disponibili. De data aceasta octeții disponibili au scăzut cu 2.
skip () Metodă
Pentru a elimina și a omite numărul specificat de octeți, putem folosi skip()
metoda. De exemplu,
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(); ) ) )
Ieșire
Flux de intrare după omiterea a 2 octeți: 3, 4,
În exemplul de mai sus, am folosit metoda skip () pentru a sări peste 2 octeți de date din fluxul de intrare. Prin urmare, 1 și 2 nu sunt citite din fluxul de intrare.
close () Metoda
Pentru a închide fluxul de intrare, putem folosi close()
metoda.
Cu toate acestea, close()
metoda nu are efect în ByteArrayInputStream
clasă. Putem folosi metodele acestei clase chiar și după close()
apelarea metodei.
Alte metode ale ByteArrayInputStream
Metode | Descrieri |
---|---|
finalize() | asigură apelarea close() metodei |
mark() | marchează poziția în fluxul de intrare până la care au fost citite datele |
reset() | returnează controlul la punctul din fluxul de intrare unde a fost setată marca |
markSupported() | verifică dacă fluxul de intrare acceptă mark() șireset() |
Pentru a afla mai multe, vizitați Java ByteArrayInputStream (documentație oficială Java).