Java ByteArrayOutputStream (z przykładami)

W tym samouczku za pomocą przykładów nauczymy się języka Java ByteArrayOutputStream i jego metod.

ByteArrayOutputStreamKlasa java.ioopakowania można stosować do pisania tablicę danych wyjściowych (w bajtach).

Rozszerza OutputStreamklasę abstrakcyjną.

Uwaga : In ByteArrayOutputStreamutrzymuje wewnętrzną tablicę bajtów do przechowywania danych.

Utwórz ByteArrayOutputStream

Aby utworzyć strumień wyjściowy tablicy bajtów, musimy najpierw zaimportować java.io.ByteArrayOutputStreampakiet. Po zaimportowaniu pakietu, oto jak możemy stworzyć strumień wyjściowy.

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

Tutaj utworzyliśmy strumień wyjściowy, który zapisze dane w tablicy bajtów o domyślnym rozmiarze 32 bajtów. Możemy jednak zmienić domyślny rozmiar tablicy.

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

Tutaj rozmiar określa długość tablicy.

Metody ByteArrayOutputStream

ByteArrayOutputStreamKlasa zapewnia realizację różnych metod obecnych w OutputStreamklasie.

write () Metoda

  • write(int byte) - zapisuje określony bajt w strumieniu wyjściowym
  • write(byte() array) - zapisuje bajty z określonej tablicy do strumienia wyjściowego
  • write(byte() arr, int start, int length) - zapisuje liczbę bajtów równą długości do strumienia wyjściowego z tablicy zaczynając od pozycji początkowej
  • writeTo(ByteArrayOutputStream out1) - zapisuje wszystkie dane bieżącego strumienia wyjściowego do określonego strumienia wyjściowego

Przykład: ByteArrayOutputStream do zapisu danych

 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(); ) ) ) 

Wynik

 Strumień wyjściowy: jest to wiersz tekstu wewnątrz ciągu. 

W powyższym przykładzie utworzyliśmy strumień wyjściowy tablicy bajtów o nazwie output.

 ByteArrayOutputStream output = new ByteArrayOutputStream(); 

Aby zapisać dane do strumienia wyjściowego, użyliśmy write()metody.

Uwaga : getBytes()Metoda użyta w programie konwertuje ciąg znaków na tablicę bajtów.

Dostęp do danych z ByteArrayOutputStream

  • toByteArray() - zwraca tablicę obecną w strumieniu wyjściowym
  • toString() - zwraca całe dane strumienia wyjściowego w postaci łańcucha

Na przykład,

 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

Metody Opisy
size() zwraca rozmiar tablicy w strumieniu wyjściowym
flush() czyści strumień wyjściowy

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

Interesujące artykuły...