Mega Code Archive

 
Categories / Java Tutorial / File
 

Writes all characters from a Reader to a file using the default character encoding

/*  * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2006.  *  * Licensed under the Aduna BSD-style license.  */ import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.io.Writer; public class Main {      /**    * Writes all characters from a <tt>Reader</tt> to a file using the default    * character encoding.    *    * @param reader The <tt>Reader</tt> containing the data to write to the    * file.    * @param file The file to write the data to.    * @return The total number of characters written.    * @throws IOException If an I/O error occured while trying to write the    * data to the file.    * @see java.io.FileWriter    */   public static final long writeToFile(Reader reader, File file)     throws IOException   {     FileWriter writer = new FileWriter(file);     try {       return transfer(reader, writer);     }     finally {       writer.close();     }   }   /**    * Transfers all characters that can be read from <tt>in</tt> to    * <tt>out</tt>.    *    * @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;   } }