Недавно я изучал потоки io и обнаружил, что функция Flush () появляется каждый раз. Я проверил его функцию, и основные функции следующие
// -
Общий и неверный ответ:
Данные в буфере сохраняются до тех пор, пока буфер не будет заполнен. Вы также можете использовать метод промывки, чтобы заставить данные в буфере для записания или использования метода Close () для закрытия потока. Перед закрытием потока вывод буфера выписывает данные буфера за один раз. Flash () и Close () оба заставляют записать данные, поэтому два результата одинаковы. Если вы не напишите это, вы обнаружите, что не можете успешно выписать это.
В ответ на вышеупомянутый ответ был дан точный ответ
FileOutputStream наследует outputStream и не обеспечивает перезапись метода flush (). Так что независимо от того, сколько контента пишет, он напрямую передаст бинарный поток в ввод -вывод базовой операционной системы. Флаг не имеет никакого эффекта. Функции ввода и выходного потока в буферизованной серии можно увидеть из слова буферизации, которое они используют буферы. Приложение должно общаться с устройством каждый раз, когда IO очень низкий. Поэтому, чтобы повысить эффективность, буфер сначала записывается в буфер при написании на устройство. Когда буфер имеет достаточно данных, он будет записан на устройство в целом.
Используйте Bufferedxxxstream. Размер буфера по умолчанию составляет 8K. При чтении буфер будет заполнен (или файл читается) все время. При написании контент будет отправлен в буфер ядра после заполнения буфера (или операция промывки). Причина высокой эффективности состоит в том, чтобы избежать падения в ядро операционной системы для каждого чтения байта (это трудоемкая операция). Для конкретного кода, пожалуйста, проверьте API самостоятельно.
Я также приложу вопрос ответа от Baidu.
flush () означает, что содержание буфера будет записано. Из -за некоторых механизмов операционной системы, чтобы предотвратить непрерывное чтение и написание дисков, существует концепция отсроченного письма. (Будьте осторожны, чтобы не путать с Fruit () обновлением), он в основном используется в IO, то есть очистить данные буфера. Как правило, при чтении и написании потоков данные сначала читаются в память, а затем записываются в файл. Когда вы читаете данные, это не означает, что ваши данные были записаны, потому что в буфере памяти все еще есть часть, которая может быть оставлена. В настоящее время, если вы вызовите метод Close () и закрываете поток чтения и записи, то эта часть данных будет потеряна, поэтому вы должны промыть () перед закрытием потока чтения и записи. Полем
То же самое верно на сетевом веб -сервере. Чтобы предотвратить отправку сообщения после написания байта, существует концепция буфера, такую как область памяти 64K, когда буфер заполнен, он сразу записывается на диск (или отправляется в браузер клиента).
Метод промывки, как правило, выполняется, когда записи программы завершены. Затем следуйте методу закрытия. Например:
// Получить выходной поток. Конечно, это зависит от конкретной среды. Printwriter out = util.getwriter (); out.println ("вывести некоторую информацию, может быть, много"); out.flush (); out.close ();Проще говоря, метод flush () заключается в выводе всех содержимого, хранящихся в памяти (партийный выход). Например, обычно используется типичный пример в классе файлов. В дополнение к использованию вывода промывки, окончательным вызовом метода закрытия также будет пакетный вывод.
Импорт java.io.fileWriter; импортировать java.io.ioexception; открытый класс A04 {public static void main (string args []) {filewriter fw; try {fw = new Filewriter ("c: //try.txt"); fw.write ("hello"); // fw.close (); // Это предложение не добавлено, файл не может быть записан, а файл пуст! System.out.println ("OK"); } catch (ioException e) {// todo автоматически сгенерированный блок e.printstacktrace (); }}}Суммировать
Выше приведено все содержание этой статьи о роли и методах использования функций промывки на языке Java. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!