Function std::io::read_to_string[][src]

pub fn read_to_string<R: Read>(reader: &mut R) -> Result<String>
🔬 This is a nightly-only experimental API. (io_read_to_string #80218)
Expand description

reader 的所有字节读入新的 String

这是 Read::read_to_string 的便捷函数。 使用此函数避免了必须先创建变量,并且提供了更多的类型安全性,因为只有在没有错误的情况下才可以取出缓冲区。 (如果使用 Read::read_to_string,则必须记住检查读取是否成功,否则缓冲区将为空或仅部分充满。)

Performance

该函数提高了易用性和类型安全性的缺点是,它使您对性能的控制较少。 例如,您不能像使用 String::with_capacityRead::read_to_string 一样预先分配内存。 另外,如果读取时发生错误,则无法重新使用缓冲区。

在许多情况下,此函数的性能将是适当的,并且易于使用和类型安全性的折衷是值得的。 但是,在某些情况下,您需要对性能进行更多控制,在这些情况下,您绝对应该直接使用 Read::read_to_string

Errors

此函数迫使您处理错误,因为输出 (String) 包装在 Result 中。 有关可能发生的错误,请参见 Read::read_to_string。 如果发生任何错误,您将得到 Err,因此您不必担心缓冲区为空或部分已满。

Examples

#![feature(io_read_to_string)]

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