W tym samouczku za pomocą przykładów nauczymy się języka Java ByteArrayOutputStream i jego metod.
ByteArrayOutputStream
Klasa java.io
opakowania można stosować do pisania tablicę danych wyjściowych (w bajtach).
Rozszerza OutputStream
klasę abstrakcyjną.
Uwaga : In ByteArrayOutputStream
utrzymuje wewnętrzną tablicę bajtów do przechowywania danych.
Utwórz ByteArrayOutputStream
Aby utworzyć strumień wyjściowy tablicy bajtów, musimy najpierw zaimportować java.io.ByteArrayOutputStream
pakiet. 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
ByteArrayOutputStream
Klasa zapewnia realizację różnych metod obecnych w OutputStream
klasie.
write () Metoda
write(int byte)
- zapisuje określony bajt w strumieniu wyjściowymwrite(byte() array)
- zapisuje bajty z określonej tablicy do strumienia wyjściowegowrite(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ątkowejwriteTo(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ściowymtoString()
- 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).