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
.