Per rispondere alla tua domanda su cosa sia effettivamente lo svuotamento, si assicura che tutto ciò che hai scritto sullo stream - un file nel tuo caso - venga effettivamente scritto sul file lì e poi.
Java può eseguire il buffering, il che significa che manterrà i dati scritti in memoria fino a quando non avrà una certa quantità, e quindi scriverli tutti sul file in una volta, che è più efficiente. Lo svantaggio di questo è che il file non è necessariamente aggiornato in un dato momento. Flush è un modo per dire "aggiorna il file
Chiudi le chiamate per primo per assicurarsi che dopo aver chiuso il file abbia ciò che ci si aspetterebbe di vedere in esso, quindi come altri hanno sottolineato, non è necessario prima di chiudere
La dimensione del buffer è dinamica/statica ?? – i2ijeya
Non importa? È il buffer di Java, non il tuo. Ho guardato ma non ho trovato il modo di impostarlo o modificarlo. Penso che tu debba accettare il comportamento di buffering dei flussi come indicato. –
I PrintWriter non si svuotano automaticamente per impostazione predefinita. Per ottenerne uno automatico, devi chiedere esplicitamente usando il costruttore PrintWriter (OutputStream, booleano). – Aaron