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


Rust BufReader用法及代码示例


本文简要介绍rust语言中 Struct std::io::BufReader 的用法。

用法

pub struct BufReader<R> { /* fields omitted */ }

BufReader<R> 结构为任何读取器添加缓冲。

直接使用 Read 实例可能效率极低。例如,每次调用 TcpStream 上的 read 都会导致系统调用。 BufReader<R> 对底层 Read 执行大量、不频繁的读取,并维护结果的内存缓冲区。

BufReader<R>可以提高程序的速度小的重复对同一文件或网络套接字的读取调用。当一次阅读大量内容或只阅读一次或几次时,它没有帮助。当从内存中已有的源(例如Vec<u8>.

BufReader<R> 被删除时,其缓冲区的内容将被丢弃。在同一流上创建 BufReader<R> 的多个实例可能会导致数据丢失。用 BufReader::into_inner 解包BufReader<R> 后从底层读取器读取也可能导致数据丢失。

例子

use std::io::prelude::*;
use std::io::BufReader;
use std::fs::File;

fn main() -> std::io::Result<()> {
    let f = File::open("log.txt")?;
    let mut reader = BufReader::new(f);

    let mut line = String::new();
    let len = reader.read_line(&mut line)?;
    println!("First line is {} bytes long", len);
    Ok(())
}

相关用法


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