C'è anche un altro dettaglio.
E' sempre buona norma richiamare un flush() prima del close() perchè nessuno ti garantisce che i dati eventualmente presenti nel buffer e non ancora inviati, vengano effettivamente scritti. La documentazione di close() dice che vengono rilasciate tutte le risorse: non parla di alcun flush() durante questa operazione. Quindi, se ci sono dati nel buffer che non sono stati ancora scritti, la close() li può tranquillamente buttare via.
Risultato: il tuo programma ha inviato correttamente tutti i dati al PrintWriter e sul file risultante, alla fine dell'elaborazione, ti mancano gli ultimi... non bello.
Ciao.![]()




Rispondi quotando