Функция read_to_string
Функция read_to_string из модуля fs читает
всё содержимое файла в строку. Первым параметром
функция принимает путь к файлу, а вторым - изменяемую
ссылку на строку String, в которую будет записано
содержимое файла. Функция возвращает значение
Result: Ok с количеством прочитанных байт
при успехе или ошибку Err в противном случае.
Синтаксис
fs::read_to_string<P: AsRef<Path>>(path: P) -> Result<String>
Также существует вариант с записью в переданный буфер:
fs::read_to_string(path).and_then(|s| { /* ... */ })
Пример
Давайте создадим файл, а затем прочитаем его содержимое в строку и выведем результат:
use std::fs;
fn main()
{
fs::write("test.txt", "abcde").unwrap();
let res = fs::read_to_string("test.txt").unwrap();
println!("{}", res);
}
Результат выполнения кода:
"abcde"
Пример
Давайте обработаем возможную ошибку при чтении
несуществующего файла с помощью match:
use std::fs;
fn main()
{
let res = fs::read_to_string("missing.txt");
match res
{
Ok(content) => println!("{}", content),
Err(e) => println!("Error: {}", e),
}
}
Результат выполнения кода:
Error: No such file or directory (os error 2)
Пример
Давайте прочитаем многострочный файл и выведем количество строк:
use std::fs;
fn main()
{
fs::write("data.txt", "12345\nabcde").unwrap();
let res = fs::read_to_string("data.txt").unwrap();
let count = res.lines().count();
println!("{}", count);
}
Результат выполнения кода:
2