Convert InputStream to byte array in Java

JGC picture JGC · Aug 12, 2009 · Viewed 980.9k times · Source

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

Answer

Rich Seller picture Rich Seller · Aug 12, 2009

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.