How to Read Lines of a Files in Ruby

Stewart Nguyen Feb 02, 2024
  1. Use File#readlines to Read Lines of a File in Ruby
  2. Use File#foreach to Read Lines of a File in Ruby
How to Read Lines of a Files in Ruby

In Ruby, a File object is an abstraction for any file that the current program can access.

We need to work with files for various reasons, including exporting monthly reports in CSV format, reading data files, and importing them into our database.

This post will look at two different ways to read a file in Ruby.

Use File#readlines to Read Lines of a File in Ruby

File#readlines takes a filename to read and returns an array of lines. Newline character \n may be included in each line.

lines = File.readlines('foo')

Output:

["line 1\n", "line 2"]

We must be cautious when working with a large file, File#readlines will read all lines at once and load them into memory.

Use File#foreach to Read Lines of a File in Ruby

File#foreach takes a filename and a block that specifies how it should process the current line. foreach is superior to readlines because it reads line by line; hence it uses less memory.

File.foreach('foo') do |line|
  puts line
end

Output:

line 1
line 2

Related Article - Ruby File