Метод read_to_end
Метод read_to_end читает все байты из источника
ввода до достижения конца потока и записывает их
в указанный вектор. Метод принимает изменяемую ссылку
на вектор Vec<u8>, в который будут помещены
прочитанные байты. Возвращает метод результат
Result<usize, Error>, где usize - это
количество прочитанных байтов.
Синтаксис
reader.read_to_end(&mut buf)
Пример
Давайте прочитаем все байты из строки "abcde"
в вектор:
use std::io::Read;
fn main()
{
let mut reader = "abcde".as_bytes();
let mut buf = Vec::new();
let res = reader.read_to_end(&mut buf).unwrap();
println!("{}", res);
println!("{:?}", buf);
}
Результат выполнения кода:
5
[97, 98, 99, 100, 101]
Пример
Давайте прочитаем все байты из строки "12345"
и преобразуем их обратно в строку:
use std::io::Read;
use std::str;
fn main()
{
let mut reader = "12345".as_bytes();
let mut buf = Vec::new();
reader.read_to_end(&mut buf).unwrap();
let res = str::from_utf8(&buf).unwrap();
println!("{}", res);
}
Результат выполнения кода:
"12345"
Смотрите также
-
метод
read,
который читает определённое количество байтов -
метод
read_to_string,
который читает все байты в строку -
метод
read_exact,
который читает точное количество байтов -
тип
Read,
который представляет трейт для чтения байтов