使用Rust serde处理文件(读取、保存)
本文使用serde_json为例;展示Rust serde如何读取文件、保存文件;
从文件中读取
以serde_json
为例;可使用serde_json::from_reader
方法从JSON文件中读取数据;
将以下json数据保存为config.json
文件:
{
"ip": "127.0.0.1",
"port": 80
}
示例代码:
use serde::{Deserialize, Serialize};
use std::fs::File;
use std::io::BufReader;
#[derive(Deserialize, Serialize)]
struct Config {
ip: String,
port: u16,
}
fn main() {
let file = File::open("config.json").unwrap();
let reader = BufReader::new(file);
let config: Config = serde_json::from_reader(reader).unwrap();
println!("{}:{}", config.ip,config.port);
}
保存为文件
以serde_json
为例;可使用serde_json::to_writer
方法将一个Rust结构体写入到JSON文件;
use serde::{Deserialize, Serialize};
use std::fs::File;
use std::io::BufWriter;
#[derive(Deserialize, Serialize)]
struct Config {
ip: String,
port: u16,
}
fn main() {
let config = Config {
ip : String::from("127.0.0.1"),
port : 80,
};
let file = File::create("saved.json").unwrap();
let writer = BufWriter::new(file);
serde_json::to_writer(writer, &config).unwrap();
}
程序运行效果
程序运行后,会生成一个saved.json
文件,并包含以下文本信息:
{"ip":"127.0.0.1","port":80}