РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
794 of 1245 menu

Метод flush

Метод flush принудительно записывает все данные, находящиеся в буфере, в целевой поток ввода-вывода. Он относится к типажу Write и возвращает значение типа io::Result<()>. Если запись прошла успешно, возвращается Ok(()), в противном случае - Err с описанием ошибки. Параметров метод не принимает.

Метод особенно полезен при работе с буферизованными потоками, например BufWriter, когда нужно гарантировать, что данные немедленно попадут в подлежащий поток, не дожидаясь заполнения буфера или закрытия программы.

Синтаксис

writer.flush()

Пример

Давайте запишем строку в буферизованный поток и принудительно сбросим буфер с помощью метода flush:

use std::io::Write; fn main() { let mut buffer = Vec::new(); buffer.write_all(b"abcde").unwrap(); buffer.flush().unwrap(); println!("{:?}", String::from_utf8(buffer).unwrap()); }

Результат выполнения кода:

"abcde"

Пример

Давайте используем BufWriter и вызовем flush, чтобы убедиться, что данные записаны в стандартный поток вывода:

use std::io::{BufWriter, Write, stdout}; fn main() { let stdout = stdout(); let mut writer = BufWriter::new(stdout.lock()); writer.write_all(b"12345").unwrap(); writer.flush().unwrap(); }

Результат выполнения кода:

12345

Смотрите также

  • типаж Write,
    который определяет метод flush и другие методы записи
  • метод write_all,
    который записывает весь буфер в поток
  • структура BufWriter,
    которая буферизует записи в подлежащий поток
  • метод new,
    который создаёт новый буферизованный писатель
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить