Skip to Content
Programming Rust
book

Programming Rust

by Jim Blandy, Jason Orendorff
December 2017
Intermediate to advanced content levelIntermediate to advanced
619 pages
15h 11m
English
O'Reilly Media, Inc.
Content preview from Programming Rust

Chapter 18. Input and Output

Doolittle: What concrete evidence do you have that you exist?

Bomb #20: Hmmmm...well...I think, therefore I am.

Doolittle: That’s good. That’s very good. But how do you know that anything else exists?

Bomb #20: My sensory apparatus reveals it to me.

Dark Star

Rust’s standard library features for input and output are organized around three traits—Read, BufRead, and Write—and the various types that implement them:

  • Values that implement Read have methods for byte-oriented input. They’re called readers.

  • Values that implement BufRead are buffered readers. They support all the methods of Read, plus methods for reading lines of text and so forth.

  • Values that implement Write support both byte-oriented and UTF-8 text output. They’re called writers.

Figure 18-1 shows these three traits and some examples of reader and writer types.

In this chapter, we’ll show how to use these traits and their methods, the various types that implement them, and other ways to interact with files, the terminal, and the network.

A diagram that shows the three traits, Read, BufRead, and Write,           and a few examples of types that implement each one. Some types, like File,           implement both Read and Write.
Figure 18-1. Selected reader and writer types from the Rust standard library

Readers and Writers

Readers are values that your program can read bytes from. Examples include:

  • Files opened using std::fs::File::open(filename)

  • std::net::TcpStreams, for receiving data over the network

  • std::io::stdin(), for reading from the process’s standard ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

The Rust Programming Language

The Rust Programming Language

Steve Klabnik, Carol Nichols
Programming Rust, 2nd Edition

Programming Rust, 2nd Edition

Jim Blandy, Jason Orendorff, Leonora F. S. Tindall
The Rust Programming Language, 2nd Edition

The Rust Programming Language, 2nd Edition

Steve Klabnik, Carol Nichols

Publisher Resources

ISBN: 9781491927274Errata PageSupplemental Content