如何从流中读取特定数量的字节?

2024-04-03

我有一个结构体BufStream<T> where T: Read+Write. The BufStream可以是一个TcpStream我想从中读取 n 个字节。 预定义缓冲区中的字节数不是固定的,但我有一个字符串/流,它指示接下来要读取的字节数。

有没有好的方法可以做到这一点?


从 Rust 1.6 开始,Read::read_exact https://doc.rust-lang.org/std/io/trait.Read.html#method.read_exact可以用来做到这一点。如果bytes_to_read是您需要读取的字节数,可能在运行时确定,并且reader是要读取的流:

let mut buf = vec![0u8; bytes_to_read];
reader.read_exact(&mut buf)?;

我不清楚的部分read_exact文档是目标缓冲区可以是动态分配的Vec.

感谢 Rust Gitter 社区向我指出了这个解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从流中读取特定数量的字节? 的相关文章

随机推荐