使用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}

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/rust-serde/processing-files-with-serde.html

分类: 计算机技术
推荐阅读:
Python hash()函数 在 Python 中,hash() 函数用于获取给定对象的哈希值(散列值),即对象的唯一标识符。
配置Nginx实现简单的反盗链 本文通过Nginx的配置指令valid_referers来实现简单的图片和其它类型文件的防盗链。
Golang创建一百万个轻量级线程并同时执行 Go语言在语言级别支持轻量级线程,叫 goroutine,执行时只需要4-5k的内存,比线程更易用,更高效轻便,调度开销更小,可同时运行上千万个并发。
Rust实现线性搜索算法(Linear Search) 本文将使用Rust实现线性搜索算法(Linear Search);
function main is undeclared in the main package解决办法 这是一个Golang新手可能会碰到的低级错误,它表明你的main包中不包含main()函数;
CreateThread()创建线程传递SOCKET参数 使用CreateThread()创建线程传递SOCKET参数的正确方法如下: