Java tutorial
import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class Main { /** * * @param in The InputStream to read the bytes from. * @return A byte array containing the bytes that were read. * @throws IOException If I/O error occurred. */ public static final byte[] readFully(InputStream in) throws IOException { ByteArrayOutputStream out = new ByteArrayOutputStream(4096); transfer(in, out); out.close(); return out.toByteArray(); } /** * Transfers all bytes that can be read from <tt>in</tt> to <tt>out</tt>. * * @param in The InputStream to read data from. * @param out The OutputStream to write data to. * @return The total number of bytes transfered. */ public static final long transfer(InputStream in, OutputStream out) throws IOException { long totalBytes = 0; int bytesInBuf = 0; byte[] buf = new byte[4096]; while ((bytesInBuf = in.read(buf)) != -1) { out.write(buf, 0, bytesInBuf); totalBytes += bytesInBuf; } return totalBytes; } }