Olá pessoal,
Suponha que eu precise abrir um fluxo para entrada de dados. Para isso crio três objetos correspondentes a um stream e dois filtros. Em qual objeto eu preciso chamar o método close() para fechar o fluxo e liberar todos os recursos associados? Em qualquer um? Apenas no filtro mais “externo”?
Obrigado,
Arnaldo.
Eu testes com InputStream’s e OutputStream’s com arquivos.
Ocorreu o seguinte:
Se eu abro um InputStream de leitura A referente ao arquivo X, e associo a esse objeto InputStream n InputStreams B, C, D, … . Então: quando eu fecho A, eu libero os recursos e nenhum outro stream consegue ler do arquivo. Uma leitura em A de um ponto x(i) a x(j) no stream, faz com que uma leitura subsequente por B, C, D, etc, inicie em x(j+1).
De outra forma se eu abro um InputStream de leitura A referente ao arquivo X, e abro outro InputStream de leitura B referente ao arquivo X. Então: se eu fecho A, eu libero somente recursos de A e B continua funcionando independentemente e é necessário fechar seu Stream posteriormente.
Funciona de forma semelhante para OutputStream.
:?