package org.jboss.resteasy.util;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
 * @version $Revision: 1 $
 */
public class ReadFromStream
{
   /**
    * Stuff the contents of a InputStream into a byte buffer.  Reads until EOF (-1).
    *
    * @param bufferSize buffer size
    * @param entityStream entity input stream
    * @return bytes read
    * @throws IOException if I/O error occurred
    */
   public static byte[] readFromStream(int bufferSize, InputStream entityStream)
         throws IOException
   {
      ByteArrayOutputStream baos = new ByteArrayOutputStream();

      byte[] buffer = new byte[bufferSize];
      int wasRead = 0;
      do
      {
         wasRead = entityStream.read(buffer);
         if (wasRead > 0)
         {
            baos.write(buffer, 0, wasRead);
         }
      } while (wasRead > -1);
      return baos.toByteArray();
   }
}
