Вызов метода сброса объекта FileReader или FileWriter в Java - PullRequest
0 голосов
/ 10 марта 2011

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

Ответы [ 2 ]

2 голосов
/ 10 марта 2011

Писатели обычно буферизуются, поэтому он ожидает заполнения буфера, прежде чем записать его в файл. Flush указывает записать буфер, даже если он еще не заполнен. Обычно это полезно, когда вы заканчиваете запись, поскольку последний буфер может быть не заполнен, но вы хотите завершить запись.

0 голосов
/ 10 марта 2011

Многие потоки имеют внутренние буферы, которые они используют для хранения данных перед их передачей.Это предотвращает необходимость непрерывной записи каждого отдельного байта на диск файловому потоку (что может быть довольно дорогим).Команда flush заставляет поток очищать свои внутренние буферы, так что в этом случае все записывается на диск.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...