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) - записва броя на байтовете, равен на дължината, в изходния поток от масив, започвайки от началото на позицията
  • 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).

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