Estou com um problema para ler um arquivo texto com cerca de 800MB.
Estou usando a seguinte rotina:
BufferedReader br = new BufferedReader(new FileReader(file));
while ((linha = br.readLine()) != null) {
// aqui faço umas verificações com a pedaços da linha
// faço alguns substrings e vejo se o valor está em determinado padrão
}
Não consigo rodar isso, antes de chegar na metade do arquivo dá um Java Heap Space.
Porém não posso simplesmente aumentar a memória das configurações do glassfish porque a aplicação vai precisar suportar qualquer tamanho de arquivo.
O BufferedReader vai lendo as linhas do arquivo texto e guarda na memória ?
Existe uma forma mais eficiente de fazer essa leitura ?
Obrigado