Erro ao ler um arquivo txt ? =Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

Olá estou com um problema, tenho uma classe para ler um arquivo texto,
e outra para exibir o que foi lido, com um arquivo texto pequeno funciona normalmente, mas quando o arquivo texto e um pouco grande dá o seguinte erro
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space

Alguém sabe o porque dá esse erro ? O arquivo que estou tentando ler tem 22.254KB
abaixo segue as duas classes que utilizo LeitorBuffer e Uso Leitor

Code:
import java.io.*;
public class LeitorBuffer
{
public static String ler(File arquivo)
{

	StringBuffer sb = new StringBuffer();
	
	try
	{
		FileReader  reader = new FileReader(arquivo);
		BufferedReader bufReader = new BufferedReader(reader);
		String s;
		int t;
		do
		{
			s = bufReader.readLine();
			if (s!=null)
			{					
				sb.append(s+"\r\n");		
			}			   
		} while (s!=null);
	     bufReader.close();
	     reader.close();
	}catch (IOException e)
		{
			e.printStackTrace();
		}	
	return sb.toString();
}

}

Classe para exibir o arquivo lido

Code:
import java.io.*;
public class UsoLeitor {

public static void main(String args[])
{
	
	File arquivo = new File("MeuTexto.txt");
	String s = LeitorBuffer.ler(arquivo);
	System.out.println(s);
	  
}

}

Alguem pode me ajudar ? O que está errado ?
Desde já agradeço.

consegui ler 2 megas com a sua classe um pouco modificada:

[code]import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;

public class LeitorBuffer
{
public static String ler(String arquivo){
return ler(new File(arquivo));
}

public static String ler(File arquivo){

	StringBuffer sb = new StringBuffer();

	try{
		String s;
		BufferedReader bufReader = new BufferedReader(new FileReader(arquivo));

		while((s = bufReader.readLine()) != null){
			sb.append(s+"\r\n");
		}

		bufReader.close();

	}catch (java.io.IOException e){
		e.printStackTrace();
	}

	return sb.toString();
}

public static void main(String args[]){

	System.out.println(LeitorBuffer.ler("qqcoisa.txt"));

}

}[/code]

peczenyj , eu agradeço, mas o erro permanece mesmo com a sua classe ao ler um arquivo de 22.254KB.
Pq será tá dando esse erro ?

peczenyj , eu agradeço, mas o erro permanece mesmo com a sua classe ao ler um arquivo de 22.254KB.
Pq será tá dando esse erro ?

Olá,
Esse post pode ajudar
http://www.guj.com.br/posts/list/17455.java

[]´s
Rodrigo

desculpe, saiu duplicado o post…
alguem pode deletar?