Boa tarde a todos!
Eu estava seguindo a aula que ensinava escrever para um arquivo através da classe "FileOutputStream", nesta aula o professor utiliza throws
no método main para lidar com a exceção checked, porém eu resolvi utilizar try-with-resources
, eu fiz conforme foi ensinado porém eu testava e nada era escrito para meu arquivo, após alguns testes eu percebi que faltava a linha que fechava o BufferedWriter
.
try(OutputStream fos = new FileOutputStream("loremNew.txt")){
Writer osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
bw.write("Ola mundo!");
bw.newLine();
bw.write("Mais uma linha top!");
bw.close(); // <- Faltava essa linha
} catch (IOException ex){
System.out.println(ex.getMessage());
}
Após eu adicionar essa linha, começou a escrever para o arquivo, minha dúvida é a seguinte, quando usamos try-with-resources não era para ser chamado automaticamente o método close()
dos objetos que implementam a interface Closeable
?
Por exemplo o FileOutputStream -> OutputStream (Que implementa Closeable).