src/main/java/com/bc/diskcache/SimpleDiskLruCache.java
/**
     * Copies bytes from a large (over 2GB) <code>InputStream</code> to an
     * <code>OutputStream</code>.
     * <p>
     * This method uses the provided buffer, so there is no need to use a
     * <code>BufferedInputStream</code>.
     * <p>
     *
     * @param input the <code>InputStream</code> to read from
     * @param output the <code>OutputStream</code> to write to
     * @param buffer the buffer to use for the copy
     * @return the number of bytes copied
     * @throws NullPointerException if the input or output is null
     * @throws IOException          if an I/O error occurs
     * @since 2.2
     */
Copies bytes from a large (over 2GB) InputStream to an
OutputStream.

This method uses the provided buffer, so there is no need to use a
BufferedInputStream.


Copies bytes from a large ( over 2GB ) InputStream to an OutputStream . This method uses the provided buffer so there is no need to use a BufferedInputStream .
private long copyLarge(final InputStream input, final OutputStream output, final byte[] buffer)
            throws IOException {
        long count = 0;
        int n;
        while (-1 != (n = input.read(buffer))) {
            output.write(buffer, 0, n);
            count += n;
        }
        return count;
    }
private long copyLarge ( final InputStream input , final OutputStream output , final byte [ ] buffer ) throws IOException { long count = 0 ; int n ; while ( - 1 != ( n = input . read ( buffer ) ) ) { output . write ( buffer , 0 , n ) ; count += n ; } return count ; }
Copies bytes from a large (over 2GB) <code>InputStream</code> to an
 <code>OutputStream</code>.
Copies bytes from a large ( over 2GB ) <code > InputStream< / code > to an <code > OutputStream< / code > .