Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the basic method to read all text from a file in C#?
Use File.ReadAllText(path) to read the entire content of a text file as a single string.
Click to reveal answer
beginner
How can you read a text file line by line in C#?
Use File.ReadLines(path) or File.ReadAllLines(path) to get each line as a string, allowing you to process the file line by line.
Click to reveal answer
beginner
What namespace must you include to work with file reading in C#?
Include using System.IO; to access file reading methods like File.ReadAllText and File.ReadLines.
Click to reveal answer
intermediate
What is the difference between File.ReadAllText and File.ReadAllLines?
File.ReadAllText reads the whole file into one string.
File.ReadAllLines reads the file into a string array, each element is one line.
Click to reveal answer
intermediate
Why should you handle exceptions when reading files in C#?
Because files might not exist, be locked, or have permission issues. Handling exceptions like FileNotFoundException or IOException prevents crashes and allows graceful error handling.
Click to reveal answer
Which method reads the entire content of a text file into a single string?
AFile.ReadAllText
BFile.ReadLines
CFile.ReadAllLines
DFile.WriteAllText
✗ Incorrect
File.ReadAllText reads the whole file content as one string.
Which namespace do you need to include to read files in C#?
ASystem.Text
BSystem.IO
CSystem.Net
DSystem.Collections
✗ Incorrect
System.IO contains classes for file input and output.
What does File.ReadLines return?
AA byte array of the file content
BAn array of strings, each representing a line
CA single string with all file content
DAn IEnumerable<string> to read lines lazily
✗ Incorrect
File.ReadLines returns an IEnumerable<string> that reads lines one by one, which is memory efficient.
Which exception should you catch when a file is missing?
AFileNotFoundException
BArgumentNullException
CIndexOutOfRangeException
DFormatException
✗ Incorrect
FileNotFoundException is thrown when the file path does not exist.
What is a good practice when reading files?
AIgnore exceptions to keep code simple
BAlways read files without checking if they exist
CHandle exceptions to avoid program crashes
DUse <code>Console.ReadLine()</code> to read files
✗ Incorrect
Handling exceptions like IOException helps your program handle errors gracefully.
Explain how to read a text file line by line in C# and why it might be better than reading the whole file at once.
Think about memory usage and processing big files.
You got /3 concepts.
Describe the exceptions you should handle when reading a file and why handling them is important.
Consider what can go wrong when accessing files.
You got /4 concepts.
Practice
(1/5)
1. What does the File.ReadAllLines method do in C#?
easy
A. Reads the entire file content as a single string.
B. Reads all lines from a text file and returns them as a string array.
C. Writes lines to a text file.
D. Deletes the specified text file.
Solution
Step 1: Understand the method purpose
File.ReadAllLines reads a text file and returns each line as an element in a string array.
Step 2: Compare with other methods
File.ReadAllText returns the whole file as one string, not an array of lines.
Final Answer:
Reads all lines from a text file and returns them as a string array. -> Option B
Quick Check:
ReadAllLines = string array [OK]
Hint: ReadAllLines returns array of lines, not one big string [OK]
Common Mistakes:
Confusing ReadAllLines with ReadAllText
Thinking it writes to a file
Assuming it deletes files
2. Which of the following is the correct syntax to read all text from a file named "data.txt" using File.ReadAllText?
easy
A. string content = File.ReadAllText("data.txt");
B. string content = File.ReadAllLines("data.txt");
C. string[] content = File.ReadAllText("data.txt");
D. string[] content = File.ReadAllLines("data.txt");
Solution
Step 1: Identify method return types
File.ReadAllText returns a single string, so the variable must be string.
Step 2: Match syntax with variable type
string content = File.ReadAllText("data.txt"); uses string variable with ReadAllText correctly. Options B and D mismatch method and variable types. string[] content = File.ReadAllText("data.txt"); tries to assign string to string array.
Final Answer:
string content = File.ReadAllText("data.txt"); -> Option A
Quick Check:
ReadAllText returns string, so variable is string [OK]
Hint: Match method return type with variable type [OK]
Common Mistakes:
Assigning ReadAllText to string array
Using ReadAllLines but expecting string
Wrong variable type for method
3. What will be the output of this C# code if the file "example.txt" contains three lines: "Hello", "World", "!"?
The method returns an array with one element per line in the file. Here, 3 lines means array length is 3.
Step 2: Analyze Console.WriteLine output
Printing lines.Length outputs the number of lines, which is 3.
Final Answer:
3 -> Option A
Quick Check:
Array length = number of lines = 3 [OK]
Hint: ReadAllLines length equals number of lines in file [OK]
Common Mistakes:
Expecting content printed instead of length
Confusing ReadAllText with ReadAllLines
Assuming runtime error without cause
4. Identify the error in this code snippet that reads all lines from "notes.txt":
string[] lines = File.ReadAllLines(notes.txt);
foreach (string line in lines)
{
Console.WriteLine(line);
}
medium
A. Console.WriteLine cannot print strings.
B. File.ReadAllLines returns a string, not string array.
C. foreach loop syntax is incorrect.
D. Missing quotes around the file name in ReadAllLines.
Solution
Step 1: Check file path syntax
The file name must be a string literal, so it needs quotes: "notes.txt".
Step 2: Verify other code parts
File.ReadAllLines returns string array, foreach syntax is correct, and Console.WriteLine can print strings.
Final Answer:
Missing quotes around the file name in ReadAllLines. -> Option D
Quick Check:
File path must be in quotes [OK]
Hint: File names must be in quotes in method calls [OK]
Common Mistakes:
Forgetting quotes around file path
Thinking ReadAllLines returns string
Misunderstanding foreach syntax
5. You want to read a text file and count how many lines contain the word "error" (case insensitive). Which code snippet correctly does this?
hard
A. var lines = File.ReadAllLines("log.txt");
int count = 0;
foreach(var line in lines) {
if(line.Contains("error")) count++;
}
B. string content = File.ReadAllText("log.txt");
int count = content.Split('\n').Count(line => line.Contains("error"));
C. var lines = File.ReadAllLines("log.txt");
int count = lines.Count(line => line.ToLower().Contains("error"));
D. string[] lines = File.ReadAllText("log.txt").Split('\n');
int count = lines.Count(line => line.Contains("error"));
Solution
Step 1: Choose method to read lines
File.ReadAllLines returns an array of lines, perfect for line-by-line processing.
Step 2: Count lines with "error" case-insensitive
var lines = File.ReadAllLines("log.txt");
int count = lines.Count(line => line.ToLower().Contains("error")); converts each line to lowercase and checks if it contains "error", then counts matches using LINQ.
Step 3: Check other options
string content = File.ReadAllText("log.txt");
int count = content.Split('\n').Count(line => line.Contains("error")); uses ReadAllText but misses case-insensitive check. var lines = File.ReadAllLines("log.txt");
int count = 0;
foreach(var line in lines) {
if(line.Contains("error")) count++;
} misses case-insensitive check. string[] lines = File.ReadAllText("log.txt").Split('\n');
int count = lines.Count(line => line.Contains("error")); incorrectly assigns ReadAllText to string array without ToLower.
Final Answer:
var lines = File.ReadAllLines("log.txt");
int count = lines.Count(line => line.ToLower().Contains("error")); -> Option C
Quick Check:
Use ReadAllLines + ToLower + Count for case-insensitive search [OK]
Hint: Use ReadAllLines and ToLower for case-insensitive line checks [OK]