Leitura de arquivo texto

Estou tentando ler um arquivo texto que tem 119549 linhas e só consigo ler até a linha 23527.

Eu uso o código a seguir.

[code]
import java.io.*;

public class Estudoss{
public static void main(String[] args){

try {
    BufferedReader in = new BufferedReader(new FileReader("arquivo.txt"));
    String str;
 
    while((str = in.readLine()) != null){
    	
    	System.out.println(str);
    	
    }
   
    in.close();
} 
catch (IOException e){
    // possiveis erros são tratatos aqui
}

System.exit(0);

}
}[/code]

Existe alguma maneira de ler um arquivo maior?

voce pode especificar o tamanho do buffer desejado no segundo parâmetro.

fonte: http://www.guj.com.br/articles/13

O java vem aumentando o tamanho do buffer a cada versão. A nível de curiosidade se queres verificar o tamanho do teu buffer segue o código:

[code]import java.io.BufferedInputStream;
import java.io.InputStream;

public class BufferSizeDetector extends BufferedInputStream {
public static void main(String[] args) {
BufferSizeDetector bsd = new BufferSizeDetector(null);

    System.err.println(System.getProperty("java.version"));
    System.err.println(bsd.getBufferSize());
}

public BufferSizeDetector(InputStream in) {
super(in);
}

public int getBufferSize() {
return super.buf.length;
}
}[/code]

Pra aumentar o buffer é so modificar o segundo parâmetro:

BufferedReader leitor = new BufferedReader(reader,1*1024*1024); 

O seu código lê perfeitamente um arquivo de um milhão de linhas sem problemas. Por isso, não é o problema do BufferedWriter.
Você está é com algum outro problema que você não imprimiu no stack trace (por exemplo, se você está rodando esse programa sob o Eclipse, ele tem um limite para a quantidade de dados que consegue mostrar no console). Só para comprovar isso, estou postando seu programa modificado, que lê um arquivo e imprime o número de linhas lidas. Testei com um arquivo que tinha 2.773.064 linhas.

    import java.io.*;  
      
    public class ContadorLinhas {  
      public static void main(String[] args){  
      
        try {  
            BufferedReader in = new BufferedReader(new FileReader(args[0]));  
            String str;  
            long nLinhas = 0;
            while((str = in.readLine()) != null){  
                  
                nLinhas++;
                  
            }  
             
            in.close();  
            System.out.printf ("Numero de linhas: %d %n", nLinhas);
        }   
        catch (IOException e){  
            e.printStackTrace(); // pelo menos imprima o stack trace ! 
        }  
      
        System.exit(0);  
      }  
    }