当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust BufRead.fill_buf用法及代码示例


本文简要介绍rust语言中 std::io::BufRead.fill_buf 的用法。

用法

fn fill_buf(&mut self) -> Result<&[u8]>

返回内部缓冲区的内容,如果它是空的,则用来自内部读取器的更多数据填充它。

此函数是lower-level 调用。它需要与 consume 方法配对才能正常工作。调用此方法时,所有内容都不会是“read”,因为稍后调用read 可能会返回相同的内容。因此,必须使用从此缓冲区消耗的字节数调用 consume ,以确保字节永远不会返回两次。

返回的空缓冲区表示流已达到 EOF。

错误

如果读取了底层读取器,则此函数将返回 I/O 错误,但返回了错误。

例子

锁定的标准输入实现 BufRead

use std::io;
use std::io::prelude::*;

let stdin = io::stdin();
let mut stdin = stdin.lock();

let buffer = stdin.fill_buf().unwrap();

// work with buffer
println!("{:?}", buffer);

// ensure the bytes we worked with aren't returned again later
let length = buffer.len();
stdin.consume(length);

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::io::BufRead.fill_buf。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。