文章目录
查看参数
rust
fn main() {
let args = std::env::args();
println!("{:?}", args); // Args { inner: ["target/debug/rt"] }
for arg in args {
println!("{}", arg);
}
}
接收终端输入
rust
use std::io::stdin;
fn main() {
let mut str_buf = String::new();
stdin().read_line(&mut str_buf)
.expect("Failed to read line.");
println!("Your input line is \n{}", str_buf);
}
读取文件
rust
use std::io::prelude::*;
use std::fs;
fn main() {
let text = fs::read_to_string("D:\\text.txt").unwrap();
println!("{}", text);
// 读 二进制文件 u8 类型集合
let content = fs::read("D:\\text.txt").unwrap();
println!("{:?}", content);
// 流式读取
// 读取文件的下面一些字节到缓冲区(缓冲区是一个 u8 数组),读取的字节数等于缓冲区的长度。
let mut buffer = [0u8; 5];
let mut file = fs::File::open("D:\\text.txt").unwrap();
file.read(&mut buffer).unwrap();
println!("{:?}", buffer);
file.read(&mut buffer).unwrap();
println!("{:?}", buffer);
}
std::fs::File
的 open 方法是"只读"打开文件,并且没有配套的 close 方法,因为 Rust 编译器可以在文件不再被使用时自动关闭文件。
写入文件
rust
use std::io::prelude::*;
use std::fs;
fn main() {
// 一次写入
fs::write("D:\\text.txt", "FROM RUST PROGRAM")
.unwrap();
// 流式写入
let mut file = File::create("D:\\text.txt").unwrap();
file.write(b"FROM RUST PROGRAM").unwrap();
}
-
File 类中不存在 append 静态方法,但可以使用 OpenOptions 来实现 用特定方法打开文件
-
OpenOptions 是一个灵活的打开文件的方法,它可以设置打开权限,除append 权限以外还有 read 权限和 write 权限
rust
use std::io::prelude::*;
use std::fs::OpenOptions;
fn main() -> std::io::Result<()> {
let mut file = OpenOptions::new()
.append(true).open("D:\\text.txt")?;
file.write(b" APPEND WORD")?;
let mut file = OpenOptions::new()
.read(true).write(true).open("D:\\text.txt")?;
file.write(b"COVER")?;
Ok(())
}
伊织 2024-05-10(五)