Struct std::io::BufReader
[−]
[src]
pub struct BufReader<R> { // some fields omitted }
The BufReader
struct adds buffering to any reader.
It can be excessively inefficient to work directly with a Read
instance.
For example, every call to read
on TcpStream
results in a system call.
A BufReader
performs large, infrequent reads on the underlying Read
and maintains an in-memory buffer of the results.
Examples
fn main() { use std::io::prelude::*; use std::io::BufReader; use std::fs::File; fn foo() -> std::io::Result<()> { let mut f = try!(File::open("log.txt")); let mut reader = BufReader::new(f); let mut line = String::new(); let len = try!(reader.read_line(&mut line)); println!("First line is {} bytes long", len); Ok(()) } }use std::io::prelude::*; use std::io::BufReader; use std::fs::File; let mut f = try!(File::open("log.txt")); let mut reader = BufReader::new(f); let mut line = String::new(); let len = try!(reader.read_line(&mut line)); println!("First line is {} bytes long", len);
Methods
impl<R: Read> BufReader<R>
fn new(inner: R) -> BufReader<R>
Creates a new BufReader
with a default buffer capacity.
Examples
fn main() { use std::io::BufReader; use std::fs::File; fn foo() -> std::io::Result<()> { let mut f = try!(File::open("log.txt")); let mut reader = BufReader::new(f); Ok(()) } }use std::io::BufReader; use std::fs::File; let mut f = try!(File::open("log.txt")); let mut reader = BufReader::new(f);
fn with_capacity(cap: usize, inner: R) -> BufReader<R>
Creates a new BufReader
with the specified buffer capacity.
Examples
Creating a buffer with ten bytes of capacity:
fn main() { use std::io::BufReader; use std::fs::File; fn foo() -> std::io::Result<()> { let mut f = try!(File::open("log.txt")); let mut reader = BufReader::with_capacity(10, f); Ok(()) } }use std::io::BufReader; use std::fs::File; let mut f = try!(File::open("log.txt")); let mut reader = BufReader::with_capacity(10, f);
fn get_ref(&self) -> &R
Gets a reference to the underlying reader.
It is inadvisable to directly read from the underlying reader.
Examples
fn main() { use std::io::BufReader; use std::fs::File; fn foo() -> std::io::Result<()> { let mut f1 = try!(File::open("log.txt")); let mut reader = BufReader::new(f1); let f2 = reader.get_ref(); Ok(()) } }use std::io::BufReader; use std::fs::File; let mut f1 = try!(File::open("log.txt")); let mut reader = BufReader::new(f1); let f2 = reader.get_ref();
fn get_mut(&mut self) -> &mut R
Gets a mutable reference to the underlying reader.
It is inadvisable to directly read from the underlying reader.
Examples
fn main() { use std::io::BufReader; use std::fs::File; fn foo() -> std::io::Result<()> { let mut f1 = try!(File::open("log.txt")); let mut reader = BufReader::new(f1); let f2 = reader.get_mut(); Ok(()) } }use std::io::BufReader; use std::fs::File; let mut f1 = try!(File::open("log.txt")); let mut reader = BufReader::new(f1); let f2 = reader.get_mut();
fn into_inner(self) -> R
Unwraps this BufReader
, returning the underlying reader.
Note that any leftover data in the internal buffer is lost.
Examples
fn main() { use std::io::BufReader; use std::fs::File; fn foo() -> std::io::Result<()> { let mut f1 = try!(File::open("log.txt")); let mut reader = BufReader::new(f1); let f2 = reader.into_inner(); Ok(()) } }use std::io::BufReader; use std::fs::File; let mut f1 = try!(File::open("log.txt")); let mut reader = BufReader::new(f1); let f2 = reader.into_inner();