Read text from a file
The following examples show how to read text synchronously and asynchronously from a text file using .NET for desktop apps. In both examples, when you create the instance of the StreamReader class, you provide the relative or absolute path to the file.
Note
These code examples don't apply to Universal Windows (UWP) apps because the Windows runtime provides different stream types for reading and writing to files. For more information, see UWP work with files. For examples that show how to convert between .NET Framework streams and Windows Runtime streams, see How to: Convert between .NET Framework streams and Windows Runtime streams.
Prerequisites
Create a text file named TestFile.txt in the same folder as the app.
Add some content to the text file. The examples in this article write the content of the text file to the console.
Read a file
The following example shows a synchronous read operation within a console app. The file contents are read and stored in a string variable, which is then written to the console.
- Create a StreamReader instance.
- Call the StreamReader.ReadToEnd() method and assign the result to a string.
- Write the output to the console.
try
{
// Open the text file using a stream reader.
using StreamReader reader = new("TestFile.txt");
// Read the stream as a string.
string text = reader.ReadToEnd();
// Write the text to the console.
Console.WriteLine(text);
}
catch (IOException e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
Try
' Open the text file using a stream reader.
Using reader As New StreamReader("TestFile.txt")
' Read the stream as a string.
Dim text As String = reader.ReadToEnd()
' Write the text to the console.
Console.WriteLine(text)
End Using
Catch ex As IOException
Console.WriteLine("The file could not be read:")
Console.WriteLine(ex.Message)
End Try
Read a file asynchronously
The following example shows an asynchronous read operation within a console app. The file contents are read and stored in a string variable, which is then written to the console.
- Create a StreamReader instance.
- Await the StreamReader.ReadToEndAsync() method and assign the result to a string.
- Write the output to the console.
try
{
// Open the text file using a stream reader.
using StreamReader reader = new("TestFile.txt");
// Read the stream as a string.
string text = await reader.ReadToEndAsync();
// Write the text to the console.
Console.WriteLine(text);
}
catch (IOException e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
Try
' Open the text file using a stream reader.
Using reader As New StreamReader("TestFile.txt")
' Read the stream as a string.
Dim text As String = Await reader.ReadToEndAsync()
' Write the text to the console.
Console.WriteLine(text)
End Using
Catch ex As IOException
Console.WriteLine("The file could not be read:")
Console.WriteLine(ex.Message)
End Try
Related content
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for