【Tokio】非同步讀取檔案
阿新 • • 發佈:2022-03-30
環境
- Time 2022-01-12
- Rust 1.57.0
- Tokio 1.15.0
概念
參考:https://docs.rs/tokio/latest/tokio/fs/struct.File.html
示例
讀取一行
use tokio::fs::File; use tokio::io::{AsyncBufReadExt, BufReader}; #[tokio::main] async fn main() -> std::io::Result<()> { let file = File::open("test.txt").await?; let mut reader = BufReader::new(file); let mut buffer = String::new(); reader.read_line(&mut buffer).await?; println!("{}", buffer); Ok(()) }
迴圈讀取行
use tokio::fs::File; use tokio::io::{AsyncBufReadExt, BufReader}; #[tokio::main] async fn main() -> std::io::Result<()> { let file = File::open("test.txt").await?; let mut lines = BufReader::new(file).lines(); while let Some(line) = lines.next_line().await? { println!("{}", line); } Ok(()) }
全部讀取
use tokio::fs::read_to_string;
#[tokio::main]
async fn main() -> std::io::Result<()> {
let content = read_to_string("test.txt").await?;
println!("{}", content);
Ok(())
}
總結
Tokio 對於讀取檔案,也可以使用非同步的方式。