se non metti il flush prima della chiusura dello stream di output i dati non vengono copiati sul file e, di conseguenza, ti ritrovi il file vuoto.