Convert InputStream to byte array in Java

arrays, inputstream, java

Solution

You can use Apache Commons IO to handle this and similar tasks.

The `IOUtils` type has a static method to read an `InputStream` and return a `byte[]`.

InputStream is;
byte[] bytes = IOUtils.toByteArray(is);

Internally this creates a `ByteArrayOutputStream` and copies the bytes to the output, then calls `toByteArray()`. It handles large files by copying the bytes in blocks of 4KiB.

Problem

How do I read an entire `InputStream` into a byte array?

Original source

Related problems