Pra aumentar o buffer é so modificar o segundo parâmetro:
BufferedReader leitor = new BufferedReader(reader,1*1024*1024);
E
entanglement
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.
importjava.io.*;publicclassContadorLinhas{publicstaticvoidmain(String[]args){try{BufferedReaderin=newBufferedReader(newFileReader(args[0]));Stringstr;longnLinhas=0;while((str=in.readLine())!=null){nLinhas++;}in.close();System.out.printf("Numero de linhas: %d %n",nLinhas);}catch(IOExceptione){e.printStackTrace();// pelo menos imprima o stack trace ! }System.exit(0);}}