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

分类: 计算机技术
推荐阅读:
PySide6控件详细教程 在本教程中,我们将介绍 PySide6 中最常用的控件,包括标签、按钮、文本框、下拉框、列表框、复选框、单选框、滑块、进度条、图像控件等。
C语言memmove()函数:在内存中移动一段数据 memmove()是C语言标准库中的一个函数,用于在内存中移动一段数据,其原理是通过复制数据到临时缓冲区来实现移动;
golint是什么 Golint是一个Go语言源代码检测工具;Golint 用于检测诸如命令、注释、语法等代码是否规范。
如何解压和压缩 .tar.gz 文件 .tar.gz 为后缀的文件是一种在Linux和macOS下常见的压缩文件,可直接使用tar命令进行解压或压缩;
Python 获取网卡的MAC地址 获取网卡MAC地址可以使用Python标准库中的uuid模块;uuid模块提供了getnode()函数,用于获取机器的MAC地址。这个函数返回一个整数值,表示机器的48位MAC地址,其中高16位可能包含厂商信息。
requests中读取和设置Cookie 读取和设置Cookie中也非常简单;requests返回的Response中包含一个cookies属性,访问它,将返回一个RequestsCookieJar对象。