Reads characters available from the Reader and returns these characters as a String object.
/*
* 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 <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;
}
}
Related examples in the same category