Program Java pentru a converti InputStream în Byte Array

În acest exemplu, vom învăța să convertim un flux de intrare în matricea de octeți în Java.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:

  • Clasa Java InputStream
  • Clasa Java ByteArrayInputStream
  • Clasa Java ByteArrayOutputStream

Exemplul 1: Program Java pentru a converti InputStream în Byte Array

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

Ieșire

 Flux de intrare: java.io.ByteArrayInputStream@27082746 Matrice de octeți: (1, 2, 3, 4)

În exemplul de mai sus, am creat un flux de intrare numit stream. Rețineți linia,

 byte() array = stream.readAllBytes();

Aici, readAllBytes()metoda returnează toate datele din flux și stochează în matricea de octeți.

Notă : Am folosit Arrays.toString()metoda pentru a converti întreaga matrice într-un șir.

Exemplul 2: convertiți InputStream în Byte Array utilizând fluxul de ieșire

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

Ieșire

 Flux de intrare: java.io.ByteArrayInputStream@27082746 Matrice de octeți: (1, 2, 3, 4)

În exemplul de mai sus, am creat un flux de intrare din intrarea matricei. Observați expresia,

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

Aici, toate elementele din flux sunt stocate în matrice, începând de la indexul 0 . Apoi stocăm toate elementele matricei în fluxul de ieșire numit ieșire.

 output.write(array, 0, i)

În cele din urmă, numim toByteArray()metoda ByteArrayOutputStreamclasei, pentru a converti fluxul de ieșire într-o matrice de octeți numită date.

Articole interesante...