Here you can find the source of readFull(Reader in)
public static StringBuilder readFull(Reader in) throws IOException
//package com.java2s; //License from project: Apache License import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.io.Reader; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; public class Main { public static StringBuilder readFull(Reader in) throws IOException { char buf[] = new char[4 * 1024]; StringBuilder sb = new StringBuilder(); for (;;) { int read = in.read(buf); if (read == -1) { break; }/* w w w. java 2 s. c o m*/ sb.append(buf, 0, read); } return sb; } public static ByteBuffer read(File file, long offset, int length) throws IOException { FileChannel chan = channel(file, false); ByteBuffer buf = ByteBuffer.allocate(length); chan.position(offset); while (buf.remaining() > 0) { if (chan.read(buf) <= 0) { throw new IOException("Failed to read from channel."); } } buf.rewind(); chan.close(); return buf; } public static FileChannel channel(File file, boolean writeable) throws IOException { String opts = writeable ? "rw" : "r"; RandomAccessFile fd = new RandomAccessFile(file, opts); FileChannel chan = fd.getChannel(); return chan; } }