How to read a file line by line using the IO.foreach() in Ruby
Overview
The IO instance is the basis for all input and output operations in Ruby. Using this instance, we can read a file and get its contents line by line using the foreach() method. This method takes the name of the file, and then a block which gives us access to each line of the contents of the file.
Syntax
IO.foreach(filename) {|x| # do something with each line x}
Syntax for the IO.foreach()
Parameters
filename: This represents the file we want to get its contents line by line.
x: This represents each line of the file that was provided by the block of the foreach() method.
Return value
The value returned is the contents of the file line by line.
Example
main.rb
text.txt
# create a file text.txt and read its contents line by lineIO.foreach("text.txt") {|x| puts x }
Explanation
- Line 2: We create a file called
text.txtand we manually write in some few texts, line by line. Then, we use theforeach()method of theIOinstance, and inside our application file, we print each line of the filetest.txtto the console.
Example
main.rb
text.txt
# create a file text.txt and read its contents line by lineIO.foreach("text.txt") {|x| puts "#{x.upcase}" }
Explanation
- Line 2: We create a file called
text.txtand we manually write in some texts, line by line. Then we use theforeach()method of theIOinstance, and inside our application file, we print each line of the filetest.txtto the console. Each line is a string of texts which we convert to uppercase and print to the console.