Tenho que ler linhas de um arquivo texto, validar trechos dessa linha e gravar no banco de dados ou em outro arquivo texto considerando caracteres acentuados, o problema é que o arquivo possui centenas de milhares de linhas e beira 1GB :shock:.
O processo de validação consome bastante tempo, e não gostaria de gastar ainda mais num processo de leitura/escrita ineficiente.
A escrita no arquivo texto só é relizada quando houver alguma inconsistência na linha, caso contrário é gravado na base.
Qual a melhor forma que vocês me sugerem para fazer esse processo?
No modelo de testes estou utilizando:
BufferedReader leitor = new BufferedReader( new InputStreamReader ( new FileInputStream ( file ), "ISO-8859-1" ), 10*1024*1024 );
e
[code]BufferedWriter saida = new BufferedWriter ( new OutputStreamWriter ( new FileOutputStream ( arquivo, false ), “UTF-8” ) );
while( leitor.ready() ) {
linha = leitor.readLine();
validações
gravações
}[/code]