Arquivos texto

Srs, tenha método que deve pegar um arquivo txt e recuperar cada linha de um arquivo e fazer um processamento em cima da linha.
Eu abro e recupero as linhas do arquivo da sequinte forma, usando Reader e BufferedReader.
Funciona perfeitamente isso , porem meu senior aqui disse que funciona bem no teste pq o arquivo é pequeno mas em produção o arquivo sera gigante com cerca de 100000 linhas e que por isso essa forma de abrir e recuperar o arquivo precisa ser otimizada pois dessa forma não há performance nesse processo de abrir e recuperar linha a linha do arquivo.
Como so conheço essa forma de abrir e recuperar dados de arquivo texto, pergunto que outras formas mais eficientes de trabalhar com arquivos eu posso usar ?

Reader reader = new BufferedReader(new InputStreamReader(getClassLoader.getResourceAsStream("kalena.txt")));			
BufferedReader br = new BufferedReader(reader); 
String temp;			
while ((temp = br.readLine()) != null) {
        //pega linha e processa
} 

iaew cara

eu tambem usaria mais ou menos assim… usando a api de E/S do java…

java.io >>> http://java.sun.com/j2se/1.4.2/docs/api/java/io/package-summary.html

bom agora se seu senior disse q existe outra forma de fazer isso com um melhor desempenho…

peça a ele que ti mostre um exemplo… afinal o cara e senior!

Pode fazer assim que não da problema. Faço do mesmo jeito e processo arquivos com pelo menos 50000 linhas. Se fosse para dar estouro de memória, não chegava na linha 1000. Mas tu pode dar uma olhada na classe Java NIO para otimizar o processo. Esse pacote eu utilizei apenas para gravar grandes quantidades de dados em um arquivo texto, não para recuperá-los.

Fernando

De qualquer jeito, vai ficar um pouco lento sim,
pois manipular uma quantidade de dados tão grande em um arquivo de texto não é a melhor opção.
Não é o java ou a forma de escrever ou a API que vai mudar a performace e sim mudar a forma como armazena e manipula esses dados. Uma quantidade tão grande deveria estar em um banco e não em um txt.

[quote=fmad27]De qualquer jeito, vai ficar um pouco lento sim,
pois manipular uma quantidade de dados tão grande em um arquivo de texto não é a melhor opção.
Não é o java ou a forma de escrever ou a API que vai mudar a performace e sim mudar a forma como armazena e manipula esses dados. Uma quantidade tão grande deveria estar em um banco e não em um txt.
[/quote]

Normalmente esses serviços que envolvem arquivos textos são para carregar no banco dados recebidos de terceiros.

Não há muita opção quanto a isso.