/** * Copy 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 * @throws NullPointerException if the input or output is null * @throws IOException if an I/O error occurs * @throws ArithmeticException if the byte count is too large * @since Commons IO 1.1 */ public static int copy( InputStream input, OutputStream output ) throws IOException { long count = copyLarge( input, output ); if ( count > Integer.MAX_VALUE ) { return -1; } return (int) count; }
/** * Copy chars from a <code>Reader</code> to a <code>Writer</code>. * <p> * This method buffers the input internally, so there is no need to use a <code>BufferedReader</code>. * <p> * Large streams (over 2GB) will return a chars copied value of <code>-1</code> after the copy has completed since * the correct number of chars cannot be returned as an int. For large streams use the * <code>copyLarge(Reader, Writer)</code> method. * * @param input the <code>Reader</code> to read from * @param output the <code>Writer</code> to write to * @return the number of characters copied * @throws NullPointerException if the input or output is null * @throws IOException if an I/O error occurs * @throws ArithmeticException if the character count is too large * @since Commons IO 1.1 */ public static int copy( Reader input, Writer output ) throws IOException { long count = copyLarge( input, output ); if ( count > Integer.MAX_VALUE ) { return -1; } return (int) count; }
long count = copyLarge(input, output); if (count > Integer.MAX_VALUE) { return -1;
long count = copyLarge(input, output); if (count > Integer.MAX_VALUE) { return -1;
IOUtils.copyLarge( input, output );