【问题标题】:How to write file from Vec<u8>? [duplicate]如何从 Vec<u8> 写入文件? [复制]
【发布时间】:2021-04-18 12:36:42
【问题描述】:

我有一个 base64 图像,并从中获得了 Vec&lt;u8&gt; 并将它们写入文件。 这是我的代码:

let file_contents_base64: Vec<u8> = image_base64::from_base64(
    String::from(&file_contents_string_vec[0])
);

我想将file_contents_base64 变量写入文件。

【问题讨论】:

    标签: rust io base64 vec


    【解决方案1】:

    除了fs::write,还有一个通用的解决方案,用于实现Write trait,使用write_all

    use std::io::Write; // bring trait into scope
    use std::fs;
    
    // ... later in code
    let file = OpenOptions::new()
        .write(true)
        // either use ? or unwrap since it returns a Result
        .open("/path/to/file")?;
    
    file.write_all(&file_contents_base64);
    

    【讨论】:

    • 请在回答之前查找重复项并投票结束问题。
    • 什么是 OpenOptions?
    【解决方案2】:

    您使用image-base64 crate 的事实似乎与该问题不太相关。考虑到您只想将Vec&lt;u8&gt; 写入文件,那么您可以使用例如fs::write():

    use std::fs;
    use std::path::Path;
    
    let file_contents_base64: Vec<u8> = ...;
    let path: &Path = ...;
    
    fs::write(path, file_contents_base64).unwrap();
    

    【讨论】:

    • 请在回答之前查找重复项并投票结束问题。
    猜你喜欢
    • 1970-01-01
    • 2020-10-28
    • 2023-02-03
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 2020-06-06
    相关资源
    最近更新 更多