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

Метод write_all

Метод write_all принадлежит трейту Write и используется для записи всех байтов из переданного буфера в выходной поток. В отличие от метода write, который может записать лишь часть данных и вернуть количество записанных байтов, write_all продолжает вызывать write до тех пор, пока не будут записаны все байты из буфера или пока не произойдёт ошибка. Параметром метод принимает срез байтов &[u8], который нужно записать. Метод возвращает Result<(), Error>: Ok(()) при успешной записи всех байтов и Err в случае возникновения ошибки ввода-вывода.

Синтаксис

write.write_all(buf)

Пример

Давайте запишем строку "abcde" в стандартный поток вывода с помощью метода write_all:

use std::io::Write; fn main() { let mut stdout = std::io::stdout(); let res = stdout.write_all(b"abcde"); println!("{:?}", res); }

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

abcdeOk(())

Пример

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

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

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

"12345abcde"

Пример

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

use std::io::Write; fn main() { let mut buf = Vec::new(); let res = buf.write_all(b"abcde"); match res { Ok(()) => println!("write ok"), Err(e) => println!("write error: {}", e), } }

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

"write ok"

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

  • метод flush,
    который сбрасывает буферизованные данные в поток
  • метод write!,
    который записывает форматированную строку в поток
  • метод writeln!,
    который записывает форматированную строку с переводом строки
  • трейт Write,
    который предоставляет методы для записи байтов в поток
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить