Метод new класса BufWriter
Метод new класса BufWriter создает новый буферизованный писатель.
Он принимает в качестве параметра объект, реализующий трейт Write,
и оборачивает его в буфер, что позволяет значительно сократить количество
системных вызовов при записи данных. Данные сначала накапливаются в буфере,
а затем сбрасываются в нижележащий писатель одним разом при заполнении буфера
или при вызове метода flush. По умолчанию размер буфера составляет 8 килобайт.
Метод возвращает новый экземпляр BufWriter.
Синтаксис
BufWriter::new(inner)
Пример
Давайте создадим буферизованный писатель для стандартного вывода и запишем в него строку:
use std::io::{BufWriter, Write};
fn main()
{
let stdout = std::io::stdout();
let mut writer = BufWriter::new(stdout);
writer.write_all(b"abcde").unwrap();
writer.flush().unwrap();
}
Результат выполнения кода:
"abcde"
Пример
Давайте создадим буферизованный писатель для вектора и запишем в него несколько строк:
use std::io::{BufWriter, Write};
fn main()
{
let mut writer = BufWriter::new(Vec::new());
writer.write_all(b"12345").unwrap();
writer.write_all(b"abcde").unwrap();
writer.flush().unwrap();
let res = writer.into_inner().unwrap();
let text = String::from_utf8(res).unwrap();
println!("{}", text);
}
Результат выполнения кода:
"12345abcde"