Esatto.
Generalmente lo si usa come ultima istruzione prima della chiusura dell'output, in modo da forzare la scrittura degli ultimi byte inviati (che potrebbero, appunto, non riempire il buffer).

Pseudocodice:

codice:
try {
   apri_canale_output

   while( ci_sono_dati_da_scrivere ) {
      scrivi_su_output
   }

   flush()

} catch (Exception e) {
   ...
} finally {

   chiudi_canale_output

}

Ciao.