Reading files into a program using the File class

Ruby does some cool things when it comes to reading from a file, and we will see that in this guide.

In the previous guide, we created a file containing the names of baseball teams. You can ask Ruby to read the contents of this file with the following code line:

teams = File.read("files-lessons/teams.txt") 

If you print the teams variable, your output should be the names of all the teams stored in that file.

Now, let's say we want to do something with the contents of a file. First, we have to separate the values and put them in an array. The code for this task is as follows:

p teams.split 

The split method will look at the string of the text and separate each element that is separated by a space.

If you execute it, you'll see that the values turned into an array:

["Twins,", "Astros,", "Mets,", "Yankees"]  

If you don't like the , symbol after every element in the array, you can remove that too by adding an argument to the split method:

p teams.split(',') 

The split function takes a delimiter as its argument. So, if you run it now, the output should be as follows:

["Twins", " Astros", " Mets", " Yankees"]  

So, that's how you can convert the values in a file into an array.

Next, let's assume we have teams spread across multiple files, and we want to get all of them into the same array. To do this, enter this:

teams_one = File.read("files-lessons/teams.txt") 
teams_two = File.read("files-lessons/other_teams.txt")

p teams_one.split(',') + teams_two.split(',')

If you run this code, this is how your output should be:

["Twins", " Astros", " Mets", " Yankees", "A's", " Diamondbacks", " Mariners", " Marlins"] 

We can now do whatever we want with this combined array. For example, you can turn it all into uppercase:

teams_one = File.read("files-lessons/teams.txt") 
teams_two = File.read("files-lessons/otherteams.txt")

teams_master = teams_one.split(',') + teams_two.split(',')

teams_master.each { |team| p team.upcase }

If you run this code, your output should have all the teams printed in uppercase:

"TWINS"
"ASTROS"
"METS"
"YANKEES"
"A'S"
"DIAMONDBACKS"
"MARINERS"
"MARLINS"

So that's how you can not only read files in Ruby but also practically work with the data contained in them.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.222.94.153