Я прочитал, что вызывающий метод flush гарантирует, что последние данные, которые вы, как вы думали, уже написали, действительно попадут в файл. Я не понял значения этого утверждения, может ли кто-нибудь однозначно объяснить, что вызовет метод flush на самом деледелать?