Google News
logo
Java Program to Convert the InputStream into Byte Array
In the following examples of Java program to convert an InputStream to a byte array :
Program :
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();
    }
  }
}
Output :
Input Stream: java.io.ByteArrayInputStream@19469ea2
Byte Array: [1, 2, 3, 4]
In the above example, we have created an input stream named stream. Note the line,
byte[] array = stream.readAllBytes();​
Here, the readAllBytes() method returns all the data from the stream and stores in the byte array.


Convert InputStream to Byte Array using Output Stream :

Program :
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();
    }
  }
}
Output :
Input Stream: java.io.ByteArrayInputStream@19469ea2
Byte Array: [1, 2, 3, 4]
In the above example, we have created an input stream from the array input. Notice the expression,
stream.read(array, 0, array.length)​
Here, all elements from stream are stored in array, starting from index 0. We then store all elements of array to the output stream named output.
output.write(array, 0, i)​
Finally, we call the toByteArray() method of the ByteArrayOutputStream class, to convert the output stream into a byte array named data.