В этом руководстве мы узнаем о 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)
- записывает количество байтов, равное длине, в выходной поток из массива, начиная с позиции startwriteTo(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).