Java ByteArrayOutputStream (cu exemple)

În acest tutorial, vom afla despre Java ByteArrayOutputStream și metodele sale cu ajutorul unor exemple.

ByteArrayOutputStreamClasa a java.iopachetului poate fi folosit pentru a scrie o serie de date de ieșire (în octeți).

Extinde OutputStreamclasa abstractă.

Notă : In ByteArrayOutputStreammenține o matrice internă de octeți pentru a stoca datele.

Creați un ByteArrayOutputStream

Pentru a crea un flux de ieșire a matricei de octeți, trebuie să importăm mai java.io.ByteArrayOutputStreamîntâi pachetul. Odată ce am importat pachetul, iată cum putem crea un flux de ieșire.

 // Creates a ByteArrayOutputStream with default size ByteArrayOutputStream out = new ByteArrayOutputStream(); 

Aici, am creat un flux de ieșire care va scrie date într-o matrice de octeți cu dimensiunea implicită 32 de octeți. Cu toate acestea, putem schimba dimensiunea implicită a matricei.

 // Creating a ByteArrayOutputStream with specified size ByteArrayOutputStream out = new ByteArrayOutputStream(int size); 

Aici, dimensiunea specifică lungimea tabloului.

Metode de ByteArrayOutputStream

ByteArrayOutputStreamClasa asigură implementarea diferitelor metode prezente în OutputStreamclasă.

write () Metoda

  • write(int byte) - scrie octetul specificat în fluxul de ieșire
  • write(byte() array) - scrie octeții din matricea specificată în fluxul de ieșire
  • write(byte() arr, int start, int length) - scrie numărul de octeți egal cu lungimea în fluxul de ieșire dintr-un tablou începând de la începutul poziției
  • writeTo(ByteArrayOutputStream out1) - scrie toate datele fluxului de ieșire curent în fluxul de ieșire specificat

Exemplu: ByteArrayOutputStream pentru a scrie date

 import java.io.ByteArrayOutputStream; class Main ( public static void main(String() args) ( String data = "This is a line of text inside the string."; try ( // Creates an output stream ByteArrayOutputStream out = new ByteArrayOutputStream(); byte() array = data.getBytes(); // Writes data to the output stream out.write(array); // Retrieves data from the output stream in string format String streamData = out.toString(); System.out.println("Output stream: " + streamData); out.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Ieșire

 Flux de ieșire: Acesta este un rând de text în interiorul șirului. 

În exemplul de mai sus, am creat un flux de ieșire de matrice de octeți numit ieșire.

 ByteArrayOutputStream output = new ByteArrayOutputStream(); 

Pentru a scrie datele în fluxul de ieșire, am folosit write()metoda.

Notă : getBytes()Metoda utilizată în program convertește un șir într-o matrice de octeți.

Accesați datele de la ByteArrayOutputStream

  • toByteArray() - returnează matricea prezentă în fluxul de ieșire
  • toString() - returnează toate datele fluxului de ieșire sub formă de șir

De exemplu,

 import java.io.ByteArrayOutputStream; class Main ( public static void main(String() args) ( String data = "This is data."; try ( // Creates an output stream ByteArrayOutputStream out = new ByteArrayOutputStream(); // Writes data to the output stream out.write(data.getBytes()); // Returns an array of bytes byte() byteData = out.toByteArray(); System.out.print("Data using toByteArray(): "); for(int i=0; i 

Output

 Data using toByteArray(): This is data. Data using toString(): This is data. 

In the above example, we have created an array of bytes to store the data returned by the toByteArray() method.

We then have used the for loop to access each byte from the array. Here, each byte is converted into the corresponding character using typecasting.

close() Method

To close the output stream, we can use the close() method.

However, the close() method has no effect in ByteArrayOutputStream class. We can use the methods of this class even after the close() method is called.

Other Methods of ByteArrayOutputStream

Metode Descrieri
size() returnează dimensiunea tabloului din fluxul de ieșire
flush() șterge fluxul de ieșire

To learn more, visit Java ByteArrayOutputStream (official Java documentation).

Articole interesante...