FileOutputStream: O método "close" também chama "flush"?

Estou realmente confuso sobre o método flush and close. No meu código, eu sempre fecho meuFileOutputStream objeto. Mas eu quero saber que se eu tiver que usar o método flush aqui e onde posso usá-lo?

Escreverei um projeto que baixe 4 ou 5 arquivos repetidamente. Vou escrever um método (para baixar arquivos) e meu método estará em um loop e baixarei arquivos repetidamente. Meu método terá um código como este.

Oclose chamadas de métodoflushou preciso usar o flush antes de fechar?

try {
    InputStream inputStream = con.getInputStream();
    FileOutputStream outputStream = new FileOutputStream("C:\\programs\\TRYFILE.csv");

    int bytesRead = -1;
    byte[] buffer = new byte[4096];
    while ((bytesRead = inputStream.read(buffer)) != -1) {
    outputStream.write(buffer, 0, bytesRead);
}

} catch(Exception e) {
    //
} finally {
    outputStream.close();
    inputStream.close();
}    

Observe que o código funciona bem: ele baixa o arquivo com sucesso. Mas não tenho certeza sobre o usoflush.

questionAnswers(2)

yourAnswerToTheQuestion