| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/12/2007 15:46:48
|
zepunk
JavaTeenager
![[Avatar]](/images/avatar/c5c3d4fe6b2cc463c7d7ecba17cc9de7.jpg)
Membro desde: 24/05/2005 11:57:28
Mensagens: 198
Localização: Osasco
Offline
|
Olá pessoal.
Estou com uma pequena duvida ao ler um arquivo, tenho um arquivo que é rezoavelmente grande porém preciso fazer uma validação na primeira e ultima linha deste arquivo. Uma das formas é criar um FileReader e fazer um while até a ultima linha, como o arquivo é grande eu não gostaria de percorrer todo ele, gostaria de saber se tem alguma forma de ir direto para a ultima linha.
Alguém poderia me ajudar com este problema.
Como ir diireto para a ultima linha de um arquivo.
Desde já muito obrigado pela ajuda.
|
Perseverança sozinha não ganha guerra, só palavras não conquistam um coração. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/12/2007 16:16:01
|
Maniezo
JavaTeenager
![[Avatar]](/images/avatar/da40657c9fece7e48d30af42d31d4350.jpg)
Membro desde: 10/04/2006 10:54:35
Mensagens: 190
Localização: São Paulo
Offline
|
Tem um projeto que usei a commons-httpclient para continuar um reenvio de arquivo, la tem o metodo skip() que da pra ler um arquivo pulando um tanto desejado em kb mas não por linha, mas acredito que da pra você tentar fazer algum tipo de calculo pra tentar achar um ponto de partida ideal para sua leitura usando esse skip...
|
SCJP, SCWCD |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/12/2007 16:54:37
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
"Rezoavelmente" grande? Ou seja, > 1MB?
Você pode usar um RandomAccessFile em vez de um FileReader e começar a ler o arquivo de trás para frente, até achar um caracter "\n" que é uma quebra de linha. Essa seria a sua última linha.
Obviamente se o arquivo terminar com "\n", então você desconsidera esse último "\n" e procura o penúltimo "\n".
Dá um pouco de trabalho, mas funciona direitinho.
Não recomendaria fazer isso se seu arquivo for menor que 1MB; acho que é mais fácil usar um FileReader mesmo.
|
|
|
 |
|
|