Originariamente inviato da Fenix872
Indovinata!

Ma scusate la nubbità: come mai ho bisogno di un flush() o di un close() e non mi basta il println?
Perchè nessuno ti garantisce che il sistema sottostante non stia utilizzando sistemi di buffering... praticamente, in tutti i sistemi al giorno d'oggi viene utilizzato il buffering.
La close, invece, va sempre fatta... altrimenti chi dovrebbe chiudere le risorse?

Quindi è compito del programmatore assicurarsi che i dati vengano flushati e che la struttura venga chiusa.

La documentazione di PrintWriter è chiarissima. Non so di preciso quale costruttore tu abbia usato per creare l'oggetto PrintWriter, ma di sicuro non hai usato quello con il line-flushing:

PrintWriter(File file)
Creates a new PrintWriter, without automatic line flushing, with the specified file.
Ciao.