Usar flush () antes de close ()

Según los documentos de Java, la invocación de close () en cualquier flujo de java.io invoca automáticamente flush (). Pero he visto en muchos ejemplos, incluso en los códigos de producción, que los desarrolladores han usado explícitamente flush () justo antes de close (). ¿En qué condiciones debemos usar flush () justo antes de close ()?

Desarrollador adquiere el hábito de llamar a flush () después de escribir algo que debe enviarse.

En mi humilde opinión, el uso de flush () y close () es común cuando acaba de haber una escritura, por ejemplo

 // write a message out.write(buffer, 0, size); out.flush(); // finished out.close(); 

Como puede ver, el enjuague () es redundante, pero significa que está siguiendo un patrón.

Supongo que en muchos casos es porque no saben que close() también invoca flush() , por lo que quieren estar seguros.

De todos modos, el uso de una stream amortiguada debería hacer que el enjuague manual sea casi redundante.