Програма Java за конвертиране на InputStream в байтов масив

В този пример ще се научим да преобразуваме входния поток в байтовия масив в Java.

За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Java:

  • Java InputStream клас
  • Java ByteArrayInputStream клас
  • Java ByteArrayOutputStream клас

Пример 1: Java програма за конвертиране на InputStream в байтов масив

 import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // convert the input stream to byte array byte() array = stream.readAllBytes(); System.out.println("Byte Array: " + Arrays.toString(array)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Изход

 Входящ поток: java.io.ByteArrayInputStream@27082746 Байтов масив: (1, 2, 3, 4)

В горния пример създадохме входен поток с име stream. Обърнете внимание на реда,

 byte() array = stream.readAllBytes();

Тук readAllBytes()методът връща всички данни от потока и съхранява в байтовия масив.

Забележка : Използвахме Arrays.toString()метода, за да преобразуваме целия масив в низ.

Пример 2: Преобразуване на InputStream в масив от байтове с помощта на изходен поток

 import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // create an output stream ByteArrayOutputStream output = new ByteArrayOutputStream(); // create a byte array to store input stream byte() array = new byte(4); int i; // read all data from input stream to array while ((i = stream.read(array, 0, array.length)) != -1) ( // write all data from array to output output.write(array, 0, i); ) byte() data = output.toByteArray(); // convert the input stream to byte array System.out.println("Byte Array: " + Arrays.toString(data)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Изход

 Входящ поток: java.io.ByteArrayInputStream@27082746 Байтов масив: (1, 2, 3, 4)

В горния пример създадохме входен поток от входа на масива. Забележете израза,

 stream.read(array, 0, array.length)

Тук всички елементи от потока се съхраняват в масив, започвайки от индекс 0 . След това съхраняваме всички елементи на масива в изходния поток, наречен output.

 output.write(array, 0, i)

И накрая, извикваме toByteArray()метода на ByteArrayOutputStreamкласа, за да преобразуваме изходния поток в байтов масив с име данни.

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