/* Copyright (C) 2002 Univ. of Massachusetts Amherst, Computer Science Dept.
   This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit).
   http://www.cs.umass.edu/~mccallum/mallet
   This software is provided under the terms of the Common Public License,
   version 1.0, as published by http://www.opensource.org.  For further
   information, see the file `LICENSE' included with this distribution. */




/** 
   @author Andrew McCallum <a href="mailto:mccallum@cs.umass.edu">mccallum@cs.umass.edu</a>
 */

package cc.mallet.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.Reader;

import com.google.errorprone.annotations.Var;

public class IoUtils
{

	public static CharSequence contentsAsCharSequence (Reader reader) throws java.io.IOException
	{
		int BUFSIZE = 2048;
		char[] buf = new char[BUFSIZE];
		@Var
		int count;
		StringBuffer sb = new StringBuffer (BUFSIZE);
		do {
			count = reader.read (buf, 0, BUFSIZE);
			if (count == -1)
				break;
			//System.out.println ("count="+count);
			sb.append (buf, 0, count);
		} while (count == BUFSIZE);
		return sb;
	}
	
	public static String contentsAsString (File f) throws java.io.IOException
	{
		assert (f != null);
		return contentsAsCharSequence (new BufferedReader (new FileReader (f))).toString();
	}

}
