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

标签 rust

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

有什么好的方法吗?

最佳答案

自 Rust 1.6 起,Read::read_exact可以用来做这个。如果 bytes_to_read 是您需要读取的字节数,可能在运行时确定,而 reader 是要从中读取的流:

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

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

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

关于rust - 如何从流中读取特定数量的字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30412521/

相关文章:

rust - 如何在所有子命令都为可选的情况下创建StructOpt命令

rust - 谁拥有堆中的 Box?

rust - 为什么我需要一个 C++ 编译器来编译 Rust?

iterator - .cloned() 应该在 .filter() 之前还是之后

rust - 使用Rust指向多段线-shapefile

polymorphism - 如何在向量中存储实现相同特征的不同类型并调用它们的通用函数?

json - TreeMap<String, String> 到 json

rust - Rust 是否具有与 Python 的 unichr() 函数等效的功能?

python - Python中的TypeError在反射(reflect)的数字仿真器(例如__radd__)中使用PyAny作为Rust pyo3 pyclass结构

rust - 使用 HMAC 作为泛型