File Java Tutorial

/*
 * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2006.
 *
 * Licensed under the Aduna BSD-style license.
 */
import java.io.CharArrayWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
public class Main {
  /**
   * Fully reads the characters available from the supplied Reader
   * and returns these characters as a String object.
   *
   * @param reader The Reader to read the characters from.
   * @return A String existing of the characters that were read.
   * @throws IOException If I/O error occurred.
   */
  public static final String readFully(Reader reader)
    throws IOException
  {
    CharArrayWriter out = new CharArrayWriter(4096);
    transfer(reader, out);
    out.close();
    return out.toString();
  }
  /**
   * Transfers all characters that can be read from in to
   * out.
   *
   * @param in The Reader to read characters from.
   * @param out The Writer to write characters to.
   * @return The total number of characters transfered.
   */
  public static final long transfer(Reader in, Writer out)
    throws IOException
  {
    long totalChars = 0;
    int charsInBuf = 0;
    char[] buf = new char[4096];
    while ((charsInBuf = in.read(buf)) != -1) {
      out.write(buf, 0, charsInBuf);
      totalChars += charsInBuf;
    }
    return totalChars;
  }
}