@KonstantinovS
Я-дебил.

Что значит Buffered?

К примеру в Java есть класс BufferedReader, или BufferedImage. В C++ есть функция cout.flush(), которая, как написано в документации, "очищает буфер". Что это значит?
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
ДЛЯ ВВОДА-ВЫВОДА: Он читает информацию большими кусками и хранит эти куски в памяти.
Служит для ускорения доступа, если на самом-самом высоком уровне файл надо читать по одному байту или символу, а на самом-самом низком (например, жёсткий диск) эффективнее это делать блоками по 4K.

У читателей flush (если таковой есть; у BufferedReader, например, его нет) служит для потоков реального времени: клавиатуры, коммуникационных портов и прочего. Всё, что накопилось в буфере, сбрасывается, и считается, что на момент T поток пуст.

Писатели, естественно, пишут данные не сразу, а когда буфер заполнится, и авария программы или перебой электричества эти данные похѣритъ. Для них команда flush физически записывает накопленные данные.

ДЛЯ КАРТИНОК: Картинка хранится не в «аппаратно-эффективном» виде, а в таком, чтобы пользователь мог её относительно просто менять.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@abcd0x00
В C++ есть функция cout.flush(), которая, как написано в документации, "очищает буфер". Что это значит?

Это значит, что вывод на экран - слишком затратная операция, чтобы её выполнять для каждого символа по очереди. Поэтому символы пишутся в буфер (массив в оперативной памяти), а потом этот буфер один раз выводится на экран. Называется "буферизованный вывод".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы