Program w języku Java do konwersji strumienia danych wejściowych na tablicę bajtów

W tym przykładzie nauczymy się konwertować strumień wejściowy na tablicę bajtów w Javie.

Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:

  • Klasa InputStream Java
  • Klasa ByteArrayInputStream języka Java
  • Klasa ByteArrayOutputStream języka Java

Przykład 1: Program Java do konwersji strumienia danych wejściowych na tablicę bajtów

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

Wynik

 Strumień wejściowy: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)

W powyższym przykładzie utworzyliśmy strumień wejściowy o nazwie stream. Zwróć uwagę na linię,

 byte() array = stream.readAllBytes();

Tutaj readAllBytes()metoda zwraca wszystkie dane ze strumienia i przechowuje w tablicy bajtów.

Uwaga : użyliśmy tej Arrays.toString()metody, aby przekonwertować całą tablicę na ciąg.

Przykład 2: Konwertuj InputStream na Byte Array przy użyciu Output Stream

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

Wynik

 Strumień wejściowy: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)

W powyższym przykładzie utworzyliśmy strumień wejściowy z wejścia tablicy. Zwróć uwagę na wyrażenie,

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

Tutaj wszystkie elementy ze strumienia są przechowywane w tablicy, zaczynając od indeksu 0 . Następnie przechowujemy wszystkie elementy tablicy w strumieniu wyjściowym o nazwie output.

 output.write(array, 0, i)

Na koniec wywołujemy toByteArray()metodę ByteArrayOutputStreamklasy, aby przekonwertować strumień wyjściowy na tablicę bajtów o nazwie data.

Interesujące artykuły...