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

Трейт BufRead

Трейт BufRead расширяет трейт Read и предоставляет дополнительные методы для эффективного чтения данных с буферизацией. Он позволяет читать данные построчно, получать доступ к внутреннему буферу и создавать итераторы по строкам. Основные реализации этого трейта - BufReader и StdinLock.

Синтаксис

use std::io::BufRead; // Методы трейта reader.read_line(&mut buf)?; reader.lines(); reader.fill_buf()?; reader.consume(amt); reader.read_until(byte, &mut buf)?; reader.split(byte); reader.skip_until(byte)?;

Пример

Давайте прочитаем строки из буферизованного источника с помощью метода lines:

use std::io::{BufRead, BufReader}; use std::io::Cursor; fn main() { let data = "abcde\n12345\nhello"; let reader = BufReader::new(Cursor::new(data)); for line in reader.lines() { let line = line.unwrap(); println!("{}", line); } }

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

"abcde" "12345" "hello"

Пример

Давайте прочитаем одну строку с помощью метода read_line:

use std::io::{BufRead, BufReader}; use std::io::Cursor; fn main() { let data = "abcde\n12345"; let mut reader = BufReader::new(Cursor::new(data)); let mut buf = String::new(); reader.read_line(&mut buf).unwrap(); println!("{}", buf.trim()); }

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

"abcde"

Пример

Давайте получим доступ к внутреннему буферу с помощью метода fill_buf:

use std::io::{BufRead, BufReader}; use std::io::Cursor; fn main() { let data = "abcde"; let mut reader = BufReader::new(Cursor::new(data)); let buf = reader.fill_buf().unwrap(); println!("{:?}", std::str::from_utf8(buf).unwrap()); let len = buf.len(); reader.consume(len); }

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

"abcde"

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

  • трейт BufReader,
    который реализует буферизованное чтение
  • метод read_line,
    который читает одну строку в буфер
  • метод lines,
    который возвращает итератор по строкам
  • метод fill_buf,
    который возвращает доступ к внутреннему буферу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить