flush()
solo fa in modo che tutti i dati buffer vengono scritti sul disco (in questo caso - più in generale, arrossato attraverso qualsiasi canale di IO che si sta utilizzando). Puoi ancora scrivere allo stream (o al writer) in seguito.
close()
svuota i dati e indica che non ci sono altri dati. Chiude qualsiasi handle di file, socket o qualsiasi altra cosa. Non è più possibile scrivere nello stream (o nello scrittore).
Nota che senza le chiamate ai dati flush()
possono ancora essere scritta al canale IO in questione - è solo che alcuni dati potrebbero essere tamponata.
close()
chiama generalmente flush()
pure, ma è stato di recente mi ha fatto notare che in alcune implementazioni JDK, eventuali eccezioni sollevate da vampate di calore come parte della chiusura di ingestione :(
fonte
2012-02-14 06:24:57
Quando si utilizza BufferedWriter (o BufferedReader) non ci si deve preoccupare di flush() - BufferedWriter esegue il flush internamente mentre "write()" ogni volta che il buffer è pieno. – enator
Ma alla fine __se il buffer non è vuoto né pieno__, e vogliamo scrivere quella parte finale nel disco (che è quasi sempre desiderato), __avremo a 'flush()' esplicitamente/manualmente__, che è molto necessario . – FaithReaper