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

分类: 计算机技术
推荐阅读:
Nginx+Golang+Gin实现简单的web服务 本文将实现Nginx+Golang+Gin实现web服务,如何安装 gin 框架本文就不说了;
WordPress去掉dns-prefetch 这段代码的作用是DNS预获取,当你网站有用到 s.w.org这个站点下的资源时,它能给我们提速,但实际上,国内几乎是用不上的。
C语言实现矩阵乘法 本文将使用C语言实现矩阵乘法;分别生成阶为m*n和p*q的两个矩阵,以得到阶为m*q的结果矩阵,其中n等于p。
SQL简易教程 SQL简易教程提供了SQL的基本用法和高级概念;该教程很适合初学者,专业人士亦可参考。
Golang中=和:=的区别 在Golang中,=是赋值运算符,而 :=是声明赋值运算符;使用=进行赋值前,其变量需要已被声明,而使用 := ,变量不需要被声明,且能自动识别被赋值的数据类型;
C语言isspace()函数:判断字符是否为空白字符 isspace()是C语言标准库中的一个函数,用于判断一个字符是否为空白字符;当字符参数是一个空白字符时,返回一个非0值,否则返回0;