javaiobytebytearrayoutputstreambytearrayinputstream

Practical usage of ByteArrayInputStream/ByteArrayOutputStream


What are some practical areas where ByteArrayInputStream and/or ByteArrayOutputStream are used? Examples are also welcome.

If one searches for examples, one finds usually something like:

byte[] buf = { 16, 47, 12 };  
ByteArrayInputStream byt = new ByteArrayInputStream(buf);

It does not help where or why should one use it. I know that they are used when working with images, ZIP files, or writing to ServletOutputStream.


Solution

  • ByteArrayInputStream: every time you need an InputStream (typically because an API takes that as argument), and you have all the data in memory already, as a byte array (or anything that can be converted to a byte array).

    ByteArrayOutputStream: every time you need an OutputStream (typically because an API writes its output to an OutputStream) and you want to store the output in memory, and not in a file or on the network.