我应该使用什么特性来读取文件,TCP连接,简单字符串......的字节流?

问题描述 投票:0回答:1

我想写一些可以读取字节的代码:

  • 标准输入
  • 一个字符串
  • TCP

也许还有其他人。 Rust的最佳方法是什么?

我认为std::io::Read特性是要走的路,但它似乎至少缺乏字符串的实现(我只需要这个特定的测试 - 也许我可以使用别的东西)?

rust
1个回答
1
投票

您可能会发现使用impl<'_> Read for &' [u8] trait从字符串中读取字节有所帮助。如类型所示,您必须先将好的字符串转换为一个字节片。这是一个简短而愚蠢的例子。

use std::fs::File;
use std::io::{Error, Read, BufReader};

fn whoo<T: Read>(mut readable: T) {
    let mut buffer = [0; 10];
    readable.read(&mut buffer).expect("panic");
    println!("{:?}", buffer);
}

fn main() -> Result<(), Error> {
    whoo("hello there".as_bytes());
    whoo("".as_bytes());

    let dict = File::open("/usr/share/dict/words")?;
    let reader = BufReader::new(dict);
    whoo(reader);

    Ok(())
}
© www.soinside.com 2019 - 2024. All rights reserved.