IO Rust – быстрый и эффективный язык программирования для разработки высокопроизводительных приложений
IO в Rust - это работа с вводом/выводом данных в языке программирования Rust. В Rust для работы с IO используются модули std::io и std::fs.
Модуль std::io предоставляет основные средства для работы с вводом/выводом данных. Он содержит типы и функции для чтения и записи данных из/в файлы, сетевых соединений, и для работы с буферами данных.
Например, чтобы прочитать файл в Rust, мы можем использовать следующий код:
rust
use std::fs::File;
use std::io::{BufReader, prelude::*};
fn main() -> std::io::Result<()> {
// Открываем файл
let file = File::open("foo.txt")?;
let reader = BufReader::new(file);
// Читаем содержимое файла в переменную contents
let mut contents = String::new();
reader.read_to_string(&mut contents)?;
println!("{}", contents);
Ok(())
}
В примере мы создаем файловый поток, используя File::open, затем создаем объект BufReader, который осуществляет буферизацию чтения из файла. Метод read_to_string читает весь файл и записывает его в переменную contents.
Для записи данных в файл можно использовать следующий код:
rust
use std::fs::File;
use std::io::prelude::*;
fn main() -> std::io::Result<()> {
let mut file = File::create("foo.txt")?;
file.write_all(b"Hello, world!")?;
Ok(())
}
Здесь мы создаем новый файл, используя File::create, а затем записываем в него строку "Hello, world!".
Кроме того, в Rust есть возможность работы с байтовой информацией, для этого используются модули std::io::Cursor и std::io::Read.
Например, чтобы прочитать данные из буфера в Rust, можно использовать следующий код:
rust
use std::io::{Cursor, Read};
fn main() -> std::io::Result<()> {
let data = vec![0x01, 0x02, 0x03, 0x04];
let mut reader = Cursor::new(data);
let mut buffer = [0u8; 2];
reader.read_exact(&mut buffer)?;
println!("{:?}", buffer);
Ok(())
}
Здесь мы создаем новый объект Cursor, который содержит байтовый массив. Метод read_exact читает следующие два байта из буфера и записывает их в массив buffer.
В итоге, в Rust с помощью модулей std::io и std::fs легко можно работать с вводом/выводом данных и буферизацией чтения/записи.