想用 ByteMut 作缓冲区,从同步io数据源中读取数据,可是无法读取,也没报错。。。
fn main() -> io::Result<()> {
let mut buf = BytesMut::with_capacity(10);
let mut input: Cursor<Vec<u8>> = Cursor::new({
(0..100).collect()
});
loop {
match input.read(&mut buf)? {
0 => {
println!("[READ OVER]");
break;
}
n => {
println!("{:?}", &buf);
println!("[READ ONCE]");
}
}
}
Ok(())
}
如果只用普通的数组,是可以读取数据
let mut buf = [0; 10];
1
共 3 条评论, 1 页
评论区
写评论advance
到末尾后不会从头开始,我的做法是每次先reserve
足够的空间,不知道有没有更好的方法。我通过 advance 来清空数据,但清空几次后,又再次不能读取了。。
我感觉我的思路不太对,不知道如何使用或实现缓冲区🤣
--
👇
LuoZijun: 将
改写成
将
改写成