public static int copy(final InputStream input, final OutputStream output) throws IOException {
        final long count = copyLarge(input, output);
        if (count > Integer.MAX_VALUE) {
            return -1;
        }
        return (int) count;
    }
Copies bytes from an <code>InputStream</code> to an
<code>OutputStream</code>.
<p>
This method buffers the input internally, so there is no need to use a
<code>BufferedInputStream</code>.
<p>
Large streams (over 2GB) will return a bytes copied value of
<code>-1</code> after the copy has completed since the correct
number of bytes cannot be returned as an int. For large streams
use the <code>copyLarge(InputStream, OutputStream)</code> method.

@param input the <code>InputStream</code> to read from
@param output the <code>OutputStream</code> to write to
@return the number of bytes copied, or -1 if &gt; Integer.MAX_VALUE
@throws NullPointerException if the input or output is null
@throws IOException          if an I/O error occurs
replugin-host-library/replugin-host-lib/src/main/java/com/qihoo360/replugin/utils/IOUtils.java