Bird
Raised Fist0
Rubyprogramming~5 mins

IO modes (r, w, a) in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the 'r' mode do when opening a file in Ruby?
The 'r' mode opens a file for reading only. The file must exist, or Ruby will raise an error.
Click to reveal answer
beginner
What happens when you open a file with 'w' mode in Ruby?
The 'w' mode opens a file for writing. If the file exists, it is cleared (emptied). If it doesn't exist, a new file is created.
Click to reveal answer
beginner
Explain the 'a' mode in Ruby file handling.
The 'a' mode opens a file for appending. Data written is added to the end of the file. If the file doesn't exist, it is created.
Click to reveal answer
beginner
What will happen if you try to open a non-existent file with 'r' mode?
Ruby will raise an error because 'r' mode requires the file to exist for reading.
Click to reveal answer
beginner
How does 'w' mode affect existing file content?
Opening a file with 'w' mode deletes all existing content, making the file empty before writing new data.
Click to reveal answer
Which mode should you use to add text to the end of an existing file without deleting its content?
A'r' (read)
B'a' (append)
C'w' (write)
D'x' (exclusive creation)
What happens if you open a file with 'w' mode and the file already exists?
AAn error is raised.
BThe file is opened for reading only.
CThe file is opened without changing content.
DThe file is cleared (emptied) before writing.
If you want to read a file, which mode should you use?
A'w'
B'a'
C'r'
D'x'
What will happen if you try to open a file that does not exist with 'r' mode?
AAn error is raised.
BThe file is appended.
CThe file is opened for writing.
DThe file is created.
Which mode creates a new file if it does not exist and opens it for writing?
A'w'
B'r'
C'a'
D'r+'
Describe the differences between the 'r', 'w', and 'a' modes when opening files in Ruby.
Think about what happens to the file content and whether the file must exist.
You got /3 concepts.
    What errors or behaviors should you expect when opening files with these modes if the file does not exist?
    Consider which modes require the file beforehand and which create it.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the 'r' mode do when opening a file in Ruby?
      easy
      A. Opens the file for reading only, without changing its content.
      B. Opens the file for writing and erases existing content.
      C. Opens the file for appending new content at the end.
      D. Creates a new file if it doesn't exist and writes to it.

      Solution

      1. Step 1: Understand the purpose of 'r' mode

        The 'r' mode is used to open a file only for reading, so the file content is not changed.
      2. Step 2: Compare with other modes

        'w' mode writes and erases content, 'a' appends, but 'r' only reads.
      3. Final Answer:

        Opens the file for reading only, without changing its content. -> Option A
      4. Quick Check:

        'r' = read only [OK]
      Hint: Remember 'r' stands for read only, no changes made [OK]
      Common Mistakes:
      • Confusing 'r' with 'w' and thinking it erases content
      • Assuming 'r' can write to the file
      • Mixing 'r' with 'a' mode functionality
      2. Which of the following is the correct syntax to open a file named data.txt for appending in Ruby?
      easy
      A. File.open('data.txt', 'x')
      B. File.open('data.txt', 'w')
      C. File.open('data.txt', 'r')
      D. File.open('data.txt', 'a')

      Solution

      1. Step 1: Identify the mode for appending

        The mode 'a' is used to open a file for appending new content at the end.
      2. Step 2: Check the syntax

        The correct syntax is File.open('filename', 'a') to append.
      3. Final Answer:

        File.open('data.txt', 'a') -> Option D
      4. Quick Check:

        Append mode = 'a' [OK]
      Hint: Use 'a' to add content without erasing [OK]
      Common Mistakes:
      • Using 'r' which is read-only mode
      • Using 'w' which erases file content
      • Using 'x' which creates a new file and errors if exists
      3. What will be the output of this Ruby code if example.txt initially contains "Hello"?
      File.open('example.txt', 'w') { |f| f.puts 'World' }
      content = File.read('example.txt')
      puts content
      medium
      A. Hello\nWorld
      B. Hello
      C. World
      D. Error: file not found

      Solution

      1. Step 1: Understand 'w' mode effect

        Opening with 'w' erases existing content and writes new content.
      2. Step 2: Analyze the code output

        The file is overwritten with "World" and then read back, so output is "World" with a newline.
      3. Final Answer:

        World -> Option C
      4. Quick Check:

        'w' erases old content, so output is new content with newline [OK]
      Hint: Writing with 'w' erases old content, so only new text shows [OK]
      Common Mistakes:
      • Thinking 'w' appends instead of overwriting
      • Expecting old content to remain
      • Confusing output with combined old and new text
      4. The following Ruby code is intended to add the line "Goodbye" to the end of log.txt. What is the error?
      File.open('log.txt', 'w') do |file|
        file.puts 'Goodbye'
      end
      medium
      A. The file name should be in double quotes, not single quotes.
      B. Using 'w' mode erases the file instead of appending.
      C. Missing a block parameter for the file object.
      D. The method 'puts' cannot be used inside File.open.

      Solution

      1. Step 1: Identify the mode used

        The code uses 'w' mode which overwrites the file content.
      2. Step 2: Understand the intended action

        To add content without erasing, 'a' mode should be used instead of 'w'.
      3. Final Answer:

        Using 'w' mode erases the file instead of appending. -> Option B
      4. Quick Check:

        Append needs 'a', not 'w' [OK]
      Hint: Use 'a' to add lines, 'w' erases file [OK]
      Common Mistakes:
      • Confusing 'w' with append mode
      • Thinking 'w' adds content without erasing
      • Believing quotes style affects file opening
      5. You want to create a Ruby script that reads a file notes.txt, appends the line "New note added", and then reads the updated content to print it. Which sequence of file modes should you use?
      hard
      A. Open with 'r' to read, then 'a' to append, then 'r' to read again.
      B. Open with 'a' to append, then 'r' to read the updated content.
      C. Open with 'w' to write, then 'a' to append, then 'r' to read.
      D. Open with 'r' to read, then 'w' to write, then 'r' to read again.

      Solution

      1. Step 1: Read the original file

        Use 'r' mode to read the existing content without changing it.
      2. Step 2: Append the new line

        Use 'a' mode to add "New note added" at the end without erasing.
      3. Step 3: Read the updated content

        Open again with 'r' mode to read and print the updated file content.
      4. Final Answer:

        Open with 'r' to read, then 'a' to append, then 'r' to read again. -> Option A
      5. Quick Check:

        Read, append, read = 'r', 'a', 'r' [OK]
      Hint: Read first, append with 'a', then read again [OK]
      Common Mistakes:
      • Using 'w' which erases content before appending
      • Trying to append before reading original content
      • Not reopening file to read updated content
      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