Struct bitflags::__core::io::BufReader [] [src]

pub struct BufReader<R> {
    // some fields omitted
}
1.0.0

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

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> BufReader<R> where R: Read

fn new(inner: R) -> BufReader<R>

Creates a new BufReader with a default buffer capacity.

Examples

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:

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

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

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

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();

Trait Implementations

impl<R> Read for BufReader<R> where R: Read

fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

1.6.0fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

fn by_ref(&mut self) -> &mut Self

fn bytes(self) -> Bytes<Self>

fn chars(self) -> Chars<Self>

fn chain<R>(self, next: R) -> Chain<Self, R> where R: Read

fn take(self, limit: u64) -> Take<Self>

fn tee<W>(self, out: W) -> Tee<Self, W> where W: Write

impl<R> BufRead for BufReader<R> where R: Read

fn fill_buf(&mut self) -> Result<&[u8], Error>

fn consume(&mut self, amt: usize)

fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>

fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>

fn split(self, byte: u8) -> Split<Self>

fn lines(self) -> Lines<Self>

impl<R> Debug for BufReader<R> where R: Debug

fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error>

impl<R> Seek for BufReader<R> where R: Seek

fn seek(&mut self, pos: SeekFrom) -> Result<u64, Error>