本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。