Olá pessoal, estou com uma dúvida sobre o porque temos que fechar uma referência scanner, InputStream ou ainda FileInputStream, com close(). Seria só para forçar a ação do método? Como no caso do FileInputStream, o close() força um flush() que faz com que realmente seja escrito no arquivo.
Dúvida em java.io (Scanner, InputStream...)
W
2 Respostas
Para liberar recursos, eles abertos ficam esperando algo acontecer. Quando eles saem de ação, será menos processamentos
D
Solucao aceita
1 like
Olá
O InputStream / OutputStream são classes para controlar o fluxo de dados, o close serve para terminar a conexão da origem com o destino dos dados. Exemplo vc já deve saber que não é possível apagar um arquivo enquanto estiver em uso, o close termina a conexão com o arquivo liberando o uso.
Alguns Stream possuem um buffer de dados, o flush serve para “liberar” estes dados. Exemplo um Stream de vídeo, se o flush for chamado na hora errada, a imagem pode sair cordada ou exibir com velocidade desordenada. O flush é chamado no close porque pode ficar algum resto de dados no buffer.
Criado 19 de junho de 2016
Ultima resposta 19 de jun. de 2016
Respostas 2
Participantes 3
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo Desbravando SOLID: Praticas avancadas para codigos de... Por Alexandre Aquiles — Casa do Codigo