flush()
tylko zapewnia, że każdy buforowane dane są zapisywane na dysku (w tym przypadku - bardziej ogólnie, przepłukać cokolwiek kanału IO używasz). Nadal możesz pisać do strumienia (lub pisarza).
close()
opróżnia dane i wskazuje, że nie ma już żadnych danych. Zamyka wszystkie uchwyty plików, gniazda lub cokolwiek innego. Wtedy nie możesz już pisać do strumienia (lub pisarza).
Należy pamiętać, że bez połączenia do flush()
danych może nadal być napisane do kanału IO mowa - to tylko niektóre dane może być buforowane.
close()
ogólnie nazywa flush()
jak dobrze, ale to niedawno wskazał mi, że w niektórych implementacjach JDK, wszelkie wyjątki rzucane przez spłukiwania jako część zamknięcia są połykane :(
Podczas korzystania z BufferedWriter (lub BufferedReader) nie musimy się martwić o flush() - BufferedWriter opróżnia się wewnętrznie podczas "write()", gdy bufor jest pełny. – enator
Ale na końcu __if bufor nie jest pusty ani pełny__, a my chcemy zapisać ostatnią część na dysku (co jest prawie zawsze pożądane), __ musimy "opróżnić()' to jawnie/ręcznie__, co jest bardzo potrzebne . – FaithReaper