Rewind() (C) com Scanner?

1 resposta
M

Fala gente, blz? Minha primeira msg aqui rs
Estou começando em Java, conhecia C então não estou tendo muitos problemas com sintaxe e etc… mas me aconteceu uma dúvida:

Num programa que criei, preciso carregar dois arquivos e ir pegando os “tokens”, pra isso usei:

blockedFile = new Scanner(new File(“block.txt”)).useDelimiter("\r\n");
allowedFile = new Scanner(new File(“allow.txt”)).useDelimiter("\r\n");

Tendo como separador uma nova linha. O porém é que eu preciso usar esse arquivo mais de uma vez, e na segunda vez o scanner não pega o arquivo do começo e acaba gerando uma exception de fim de arquivo. Procurei por algum tipo de rewind() igual o do C mas não encontrei, tentei usar outras classes também sem sucesso… acabei fechando e abrindo o arquivo novamente, funcionou, mas acho que não é o certo… alguém poderia ajudar?

Obrigado!!

1 Resposta

T

O correto é fechar e abrir novamente o arquivo, como você fez.
Em Java não se pode usar algo como “fseek” e “ftell” com arquivos-texto; os equivalentes a “fseek” e “ftell” em Java são “seek” e “getFilePointer” da classe java.io.RandomAccessFile, que como você deve ter visto, não é muito adequada para ler texto.

Criado 30 de maio de 2007
Ultima resposta 30 de mai. de 2007
Respostas 1
Participantes 2