本文简要介绍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 BufReader.new用法及代码示例
- Rust BufReader.get_mut用法及代码示例
- Rust BufReader.with_capacity用法及代码示例
- Rust BufReader.capacity用法及代码示例
- Rust BufReader.buffer用法及代码示例
- Rust BufReader.get_ref用法及代码示例
- Rust BufReader.into_inner用法及代码示例
- Rust BufRead.split用法及代码示例
- Rust BufRead.fill_buf用法及代码示例
- Rust BufRead.has_data_left用法及代码示例
- Rust BufRead.read_until用法及代码示例
- Rust BufRead.read_line用法及代码示例
- Rust BufRead.lines用法及代码示例
- Rust BufRead用法及代码示例
- Rust BufWriter.capacity用法及代码示例
- Rust BufWriter.get_ref用法及代码示例
- Rust BufWriter.get_mut用法及代码示例
- Rust BufWriter.into_inner用法及代码示例
- Rust BufWriter用法及代码示例
- Rust BufWriter.with_capacity用法及代码示例
- Rust BufWriter.new用法及代码示例
- Rust BufWriter.into_parts用法及代码示例
- Rust BufWriter.buffer用法及代码示例
- Rust Builder.stack_size用法及代码示例
- Rust BuildHasher.build_hasher用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Struct std::io::BufReader。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。