InputStream
to a 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();
}
}
}
Input Stream: java.io.ByteArrayInputStream@19469ea2
Byte Array: [1, 2, 3, 4]
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.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();
}
}
}
Input Stream: java.io.ByteArrayInputStream@19469ea2
Byte Array: [1, 2, 3, 4]
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
.