Lendo arquivo por partes

3 respostas
J

Olá!!

Agora que já consegui fazer o usuário escolher o arquivo que ele deseja abrir, preciso ler tal arquivo. Bem, já tenho o objeto File retornado pelo JFileChooser e o problema agora consiste em ler o arquivo por partes. Sabendo que o arquivo selecionado só contém texto (podendo ter alguns megas de tamanho) preciso ler os primeiros 50 caracteres por exemplo e transformá-los em string ou string buffer, depois disso ler os próximos 50 e assim por diante.
Estava lendo que a classe FileInputStream não permite que eu me posicione dentro do arquivo… (pelo menos foi o que eu entendi) então, qual é a saída ? Lembrando que eu não posso carregar em hipótese alguma todo o arquivo na memória por exigência da aplicação.

Desde já agradeço a ajuda!

3 Respostas

Rafael_Steil

se quiser ler caracter por caracter, usa read(), senao usa readLine() e pega a quantidade desejada… claro q nao eh mto eficiente, mas…

Rafael

J

Olá!!
Sua sugestão é interessante mas não se aplica muito bem ao meu caso pois devo carregar o texto que está no arquivo por partes não tão grandes nem tão pequenas pois irei realizar buscas de padrões nesse texto logo preciso pegar por exemplo os 50 primeiros caracteres, depois os 50 - m - 1 caracteres onde m é o tamanho do meu padrão. Estou vendo que terei que fazer uma pequena gambiarra para fazer isso funcionar!!

Rafael_Steil

Voce pode usar o metodo

read(char[] cbuf, int off, int len)

da classe Reader ( a qual muitas classes extendem, como BufferedReader )… … assim voce pode fazer o que deseja ( apesar de ser um meio de leitura lento )

Rafael

Criado 2 de dezembro de 2002
Ultima resposta 2 de dez. de 2002
Respostas 3
Participantes 2