Onde está o fis.close(), indicado por <-----, quando executo o programa, tenho, ao final da execução, leEntrada() é o último método chamado por main,
a mensagem (não é de erro) "Stream closed" em vez dos dados recuperados.
Se comento o fis.close(), desativando-o, o programa lê os dados do arquivo gravado e os exibe como deveria ser.
Mas o Eclipse dá o alerta de que o arquivo não fecha nunca.
Se ponho ele em qualquer outro lugar, vem o erro de que fis.close() não se resolve, pelo que entendo, não acha a declaração da variável fis.
Assim, faço a pergunta, como se resolve isso? Qual é o lugar dele?
Onde está o fis.close(), indicado por <-----, quando executo o programa, tenho, ao final da execução, leEntrada() é o último método chamado por main,
a mensagem (não é de erro) "Stream closed" em vez dos dados recuperados.
Se comento o fis.close(), desativando-o, o programa lê os dados do arquivo gravado e os exibe como deveria ser.
Mas o Eclipse dá o alerta de que o arquivo não fecha nunca.
Se ponho ele em qualquer outro lugar, vem o erro de que fis.close() não se resolve, pelo que entendo, não acha a declaração da variável fis.
Assim, faço a pergunta, como se resolve isso? Qual é o lugar dele?
Obrigado.
[/quote]
Cara de boa, tenta usar além do try catch o seu finally… assim mesmo que ele esteja travando ao abrir ou no meio de uma leitura ele sempre fechará o arquivo. Blz… fica assim seu código:
[code]public void leEntrada (){
File arquivo = new File("C:\pet\entrada.txt");
try {
FileInputStream fis= new FileInputStream(arquivo); //fis.close(); <------- comenta essa linha aqui… usa lá em baixo!
int lin;
while((lin=fis.read())!=-1){
System.out.print((char)lin);
}