Input/Output

An IO object is a stream: a readable source of bytes or characters or a
writable sink for bytes or characters. The File class is a subclass of IO. IO
objects also represent the “standard input” and “standard output”
streams used to read from and write to the console. The stringio module in the standard library allows
us to create a stream wrapper around a string object. Finally, the
socket objects used in networking (described later in this chapter) are also
IO objects.

Opening Streams

Before we can perform input or output, we must have an
IO object to read from or write to.
The IO class defines
factory methods new,
open, popen, and pipe, but these are low-level methods with
operating system dependencies, and they are not documented here. The
subsections that follow describe more common ways to obtain IO objects. (And Networking includes examples that create IO objects that communicate across the
network.)

Opening files

One of the most common kinds of IO
is the reading and writing of files. The File class defines some utility methods
(described below) that read the entire contents of a file with one
call. Often, however, you will instead open a file to obtain a
File object and then use IO methods to read from or write to the
file.

Use File.open (or File.new) to open a file. The first argument is the name of the
file. This is usually specified as a string, but in Ruby 1.9, you
can use any object with a to_path method. Filenames are interpreted relative to the current working ...

The best content for your career. Discover unlimited learning
on demand for around $1/day.