Bird
Raised Fist0
Rubyprogramming~5 mins

File.readlines for line-by-line in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does File.readlines do in Ruby?

File.readlines reads a file and returns an array where each element is a line from the file.

Click to reveal answer
beginner
How can you read a file line-by-line using File.readlines?

Use File.readlines('filename').each do |line| ... end to process each line one by one.

Click to reveal answer
beginner
What type of object does File.readlines return?

It returns an array of strings, where each string is a line from the file including the newline character.

Click to reveal answer
intermediate
How do you remove the newline character from each line read by File.readlines?

You can use line.chomp inside the loop to remove the newline character from each line.

Click to reveal answer
intermediate
Why might you prefer File.readlines over File.read when processing files?

File.readlines breaks the file into lines automatically, making it easier to process line-by-line without manual splitting.

Click to reveal answer
What does File.readlines('file.txt') return?
AAn integer count of lines
BA single string with the whole file content
CA file object
DAn array of lines from the file
How do you iterate over each line after using File.readlines?
AUsing <code>.each do |line| ... end</code>
BUsing <code>.split</code>
CUsing <code>.readline</code>
DUsing <code>.open</code>
Which method removes the newline character from a string in Ruby?
A<code>strip</code>
B<code>chomp</code>
C<code>delete</code>
D<code>split</code>
If you want to read a file line-by-line without loading all lines at once, which method is better than File.readlines?
A<code>File.read</code>
B<code>File.write</code>
C<code>File.foreach</code>
D<code>File.open</code>
What will File.readlines('file.txt')[0] return?
AThe first line of the file as a string
BThe first character of the file
CThe number of lines in the file
DAn error
Explain how to use File.readlines to read a file and print each line without the newline character.
Think about reading lines into an array and looping through it.
You got /4 concepts.
    Describe the difference between File.readlines and File.foreach when reading files line-by-line.
    Consider memory usage and when lines are loaded.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does File.readlines('example.txt') return in Ruby?
      easy
      A. A hash with line numbers as keys and lines as values
      B. A string containing the entire file content
      C. An array where each element is a line from the file, including newline characters
      D. An integer representing the number of lines in the file

      Solution

      1. Step 1: Understand File.readlines behavior

        File.readlines reads the whole file and returns an array of lines.
      2. Step 2: Check line content format

        Each line includes the newline character at the end unless removed by chomp.
      3. Final Answer:

        An array where each element is a line from the file, including newline characters -> Option C
      4. Quick Check:

        File.readlines returns array of lines [OK]
      Hint: Remember: File.readlines returns an array of lines with newlines [OK]
      Common Mistakes:
      • Thinking it returns a single string
      • Assuming it returns a hash or dictionary
      • Believing it returns just the line count
      2. Which of the following is the correct syntax to read all lines from a file named data.txt into an array in Ruby?
      easy
      A. File.read_lines[]('data.txt')
      B. File.read('data.txt')
      C. File.read_lines('data.txt')
      D. File.readlines('data.txt')

      Solution

      1. Step 1: Recall correct method name

        The correct Ruby method to read lines is File.readlines (no underscore or plural misspelling).
      2. Step 2: Check method call syntax

        The method is called with parentheses and the filename as a string argument.
      3. Final Answer:

        File.readlines('data.txt') -> Option D
      4. Quick Check:

        Correct method name and syntax = File.readlines('data.txt') [OK]
      Hint: Use exact method name: File.readlines('filename') [OK]
      Common Mistakes:
      • Using underscores instead of camel case
      • Misspelling the method name
      • Omitting parentheses or using wrong brackets
      3. Given a file notes.txt with these lines:
      Line 1
      Line 2
      Line 3
      

      What will the following Ruby code output?
      lines = File.readlines('notes.txt')
      puts lines[1]
      medium
      A. Line 2
      B. Line 1
      C. Line 3
      D. nil

      Solution

      1. Step 1: Understand File.readlines output

        The file lines are read into an array: ["Line 1\n", "Line 2\n", "Line 3\n"].
      2. Step 2: Access the second element

        Array indexing starts at 0, so lines[1] is "Line 2\n".
      3. Final Answer:

        Line 2 -> Option A
      4. Quick Check:

        Index 1 = second line = Line 2 [OK]
      Hint: Remember arrays start at 0; lines[1] is second line [OK]
      Common Mistakes:
      • Assuming indexing starts at 1
      • Forgetting newline characters affect output
      • Expecting nil for valid index
      4. What is wrong with this Ruby code snippet?
      lines = File.readlines('file.txt')
      lines.each do |line|
        puts line.chomp
      end

      Assuming file.txt exists and is readable.
      medium
      A. It will skip the first line of the file
      B. Nothing is wrong; it correctly prints each line without newlines
      C. It will print lines with extra newlines
      D. It will raise an error because chomp is not a method

      Solution

      1. Step 1: Analyze File.readlines usage

        File.readlines reads all lines into an array, each ending with a newline.
      2. Step 2: Check iteration and chomp usage

        Using each to iterate and chomp removes trailing newline before printing.
      3. Final Answer:

        Nothing is wrong; it correctly prints each line without newlines -> Option B
      4. Quick Check:

        chomp removes newline, so output is clean [OK]
      Hint: Use chomp to remove newlines when printing lines [OK]
      Common Mistakes:
      • Thinking chomp is invalid method
      • Expecting extra newlines despite chomp
      • Assuming lines are skipped
      5. You want to read a file data.txt and create a new array containing only lines that include the word "error" (case insensitive). Which Ruby code correctly does this using File.readlines?
      hard
      A. File.readlines('data.txt').select { |line| line.downcase.include?('error') }
      B. File.readlines('data.txt').map { |line| line.include?('error') }
      C. File.readlines('data.txt').filter { |line| line.include?('Error') }
      D. File.readlines('data.txt').reject { |line| line.downcase.include?('error') }

      Solution

      1. Step 1: Use File.readlines to get all lines

        This returns an array of lines from the file.
      2. Step 2: Filter lines case-insensitively

        Use select to keep lines where line.downcase.include?('error') is true.
      3. Step 3: Check other options

        File.readlines('data.txt').map { |line| line.include?('error') } uses map which returns booleans, not lines. File.readlines('data.txt').filter { |line| line.include?('Error') } checks case-sensitive 'Error'. File.readlines('data.txt').reject { |line| line.downcase.include?('error') } rejects lines with 'error', opposite of requirement.
      4. Final Answer:

        File.readlines('data.txt').select { |line| line.downcase.include?('error') } -> Option A
      5. Quick Check:

        select + downcase + include? = correct filter [OK]
      Hint: Use select with downcase and include? for case-insensitive filtering [OK]
      Common Mistakes:
      • Using map instead of select
      • Ignoring case sensitivity
      • Using reject instead of select
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard