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


Rust read_to_string用法及代碼示例


本文簡要介紹rust語言中 Function std::io::read_to_string 的用法。

用法

pub fn read_to_string<R: Read>(reader: &mut R) -> Result<String>

reader 中的所有字節讀取到新的 String 中。

這是 Read::read_to_string 的便利函數。使用此函數避免了必須先創建變量並提供更高的類型安全性,因為隻有在沒有錯誤的情況下才能取出緩衝區。 (如果您使用 Read::read_to_string ,您必須記住檢查讀取是否成功,否則您的緩衝區將為空或僅部分滿。)

性能

此函數增加了易用性和類型安全性的缺點是它使您對性能的控製較少。例如,您不能像使用 String::with_capacity Read::read_to_string 那樣預先分配內存。此外,如果讀取時發生錯誤,您將無法重新使用緩衝區。

在許多情況下,這個函數的性能是足夠的,而且易用性和類型安全的權衡是值得的。但是,在某些情況下您需要對性能進行更多控製,在這些情況下,您絕對應該直接使用 Read::read_to_string

請注意,在某些特殊情況下,例如讀取文件時,此函數將根據正在讀取的輸入的大小預先分配內存。在這些情況下,性能應該與您使用帶有手動預分配緩衝區的 Read::read_to_string 一樣好。

錯誤

此函數強製您處理錯誤,因為輸出(String)包含在 Result 中。有關可能發生的錯誤,請參閱 Read::read_to_string 。如果發生任何錯誤,您將得到 Err ,因此您不必擔心緩衝區為空或部分已滿。

例子

#![feature(io_read_to_string)]

fn main() -> io::Result<()> {
    let stdin = io::read_to_string(&mut io::stdin())?;
    println!("Stdin was:");
    println!("{}", stdin);
    Ok(())
}

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Function std::io::read_to_string。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。