Класс Java ByteArrayOutputStream
Класс Java ByteArrayOutputStream
В этом руководстве мы узнаем о Java ByteArrayOutputStream и его методах с помощью примеров.
ByteArrayOutputStream
класс java.io
package можно использовать для записи массива выходных данных (в байтах).
Он расширяет OutputStream
абстрактный класс.
Примечание :В 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(int byte)
- записывает указанный байт в выходной потокwrite(byte[] array)
- записывает байты из указанного массива в выходной потокwrite(byte[] arr, int start, int length)
- записывает количество байт, равное 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 stream: This is a line of text inside the string.
В приведенном выше примере мы создали поток вывода массива байтов с именем 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<byteData.length; i++) {
System.out.print((char)byteData[i]);
}
// Returns a string
String stringData = out.toString();
System.out.println("\nData using toString(): " + stringData);
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Вывод
Data using toByteArray(): This is data. Data using toString(): This is data.
В приведенном выше примере мы создали массив байтов для хранения данных, возвращаемых функцией toByteArray()
. метод.
Затем мы использовали цикл for для доступа к каждому байту из массива. Здесь каждый байт преобразуется в соответствующий символ с помощью приведения типов.
<час>Метод close()
Чтобы закрыть поток вывода, мы можем использовать close()
метод.
Однако close()
метод не действует в ByteArrayOutputStream
учебный класс. Мы можем использовать методы этого класса даже после close()
вызывается метод.
Другие методы ByteArrayOutputStream
Методы | Описания |
---|---|
size() | возвращает размер массива в выходном потоке |
flush() | очищает выходной поток |
Чтобы узнать больше, посетите страницу Java ByteArrayOutputStream (официальная документация по Java).
java