Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não entendi.

Na explicação é citado:

Então, basta adicionarmos a seguinte instrução, depois que recebermos a última informação pelo Reader:

br.close();

Mas o br se refere ao conteúdo do arquivo. Se eu inserir isso vai dar erro. Então ficou dessa forma is.close();

Não deveria ser mudado a explicação?

2 respostas
solução!

O br é o BufferedReader. Ele não se refere exatamente aos dados, mas ele facilita a leitura deles em bloco. Por isso o Buffered, pois ele cria um Buffer em memória para armazenar os dados. Como as classes são encapsuladas umas nas outras, usando o padrão de injeção e dependências via construtor, o close na classe mais externa força o close nas mais internas. Foi essa a explicação dada. Se você fechar o is e depois tentar usar uma das classes mais externas, aí sim vai gerar um erro.

O Sandro esclareceu muito bem! Se ainda persistir a dúvida pode perguntar quantas vezes achar necessário!