code: public static long copy(Reader input, Writer output) throws IOException {
      char[] buffer = new char[DefaultBufferSize];
      long count = 0;
      int n = 0;
      while (Eof != (n = input.read(buffer))) {
        output.write(buffer, 0, n);
        count += n;
      }
      return count;
    }
docs: Copy chars from a <code>Reader</code> to a <code>Writer</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 3.1