當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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