Mega Code Archive

 
Categories / Android / File
 

Copy chars from a large (over 2GB) Reader to a Writer

import java.io.IOException; import java.io.Reader; import java.io.Writer; class Main {   private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;   /**    * Copy chars from a large (over 2GB) <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>.    *     * @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    * @since Commons IO 1.3    */   public static long copyLarge(Reader input, Writer output)       throws IOException {     char[] buffer = new char[DEFAULT_BUFFER_SIZE];     long count = 0;     int n = 0;     while (-1 != (n = input.read(buffer))) {       output.write(buffer, 0, n);       count += n;     }     return count;   } }