Java ByteArrayOutputStream (с примерами)

В этом руководстве мы узнаем о Java ByteArrayOutputStream и его методах с помощью примеров.

ByteArrayOutputStreamКласс java.ioпакета может быть использован для записи массива выходных данных (в байтах).

Он расширяет OutputStreamабстрактный класс.

Примечание . In ByteArrayOutputStreamподдерживает внутренний массив байтов для хранения данных.

Создайте ByteArrayOutputStream

Чтобы создать выходной поток байтового массива, мы должны java.io.ByteArrayOutputStreamсначала импортировать пакет. После импорта пакета вот как мы можем создать выходной поток.

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

Здесь мы создали выходной поток, который будет записывать данные в массив байтов с размером по умолчанию 32 байта. Однако мы можем изменить размер массива по умолчанию.

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

Здесь размер указывает длину массива.

Методы ByteArrayOutputStream

ByteArrayOutputStreamКласс обеспечивает реализацию различных методов , присутствующих в OutputStreamклассе.

write () Метод

  • write(int byte) - записывает указанный байт в выходной поток
  • write(byte() array) - записывает байты из указанного массива в выходной поток
  • write(byte() arr, int start, int length) - записывает количество байтов, равное длине, в выходной поток из массива, начиная с позиции start
  • writeTo(ByteArrayOutputStream out1) - записывает все данные текущего выходного потока в указанный выходной поток

Пример: ByteArrayOutputStream для записи данных

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

Вывод

 Выходной поток: это строка текста внутри строки. 

В приведенном выше примере мы создали выходной поток байтового массива с именем output.

 ByteArrayOutputStream output = new ByteArrayOutputStream(); 

Для записи данных в выходной поток мы использовали write()метод.

Примечание . getBytes()Метод, используемый в программе, преобразует строку в массив байтов.

Доступ к данным из ByteArrayOutputStream

  • toByteArray() - возвращает массив, присутствующий внутри выходного потока
  • toString() - возвращает все данные выходного потока в строковой форме

Например,

 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

Методы Описания
size() возвращает размер массива в потоке вывода
flush() очищает выходной поток

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

Интересные статьи...