VB.NET StreamReader Example

Use the StreamReader type to read text files. Read lines with the ReadLine function.

StreamReader handles text files. We read a text file in VB.NET by Using StreamReader. This will correctly dispose of system resources and make code simpler. The best way to use StreamReader requires some special syntax.StreamWriterFile

Example. The Using-keyword allows you to automate disposal of the system resources, which is critical for performance and stability. The example reads the first line from file.txt in the local directory.

Note: You need to add a text file called "file.txt" and include it in the build directory ("Copy if newer").

Using: Look at how the Using-statement is formed to create the StreamReader. This is the most common usage pattern for StreamReader.

Also: We include the System.IO namespace at the top, with the line "Imports System.IO". This is important to compile the program.

VB.NET program that uses StreamReader Imports System.IO Module Module1 Sub Main() ' Store the line in this String. Dim line As String ' Create new StreamReader instance with Using block. Using reader As StreamReader = New StreamReader("file.txt") ' Read one line from file line = reader.ReadLine End Using ' Write the line we read from "file.txt" Console.WriteLine(line) End Sub End Module Output (Contents of file.)

Example 2. This example starts off by declaring a new List(Of String). This instance is a generic List, which means it is strongly-typed and more efficient. The Using-statement is used next, and it opens the "file.txt" file.

Also: There is a local line variable declared, which will store each line as it is read.


Info: Before the loop begins, we read the first line of the file. Then we enter a Do While loop, which continues until the last line read is Nothing.

While, Do WhileNothing

End: At the end of the program, I inserted a debugger breakpoint to show the contents of the List.

And: I found that there were two string elements, containing Line 1 and Line 2 of the text file we read.

VB.NET program that uses StreamReader and List Imports System.IO Module Module1 Sub Main() ' We need to read into this List. Dim list As New List(Of String) ' Open file.txt with the Using statement. Using r As StreamReader = New StreamReader("file.txt") ' Store contents in this String. Dim line As String ' Read first line. line = r.ReadLine ' Loop over each line in file, While list is Not Nothing. Do While (Not line Is Nothing) ' Add this line to list. list.Add(line) ' Display to console. Console.WriteLine(line) ' Read in the next line. line = r.ReadLine Loop End Using End Sub End Module

ReadToEnd. The StreamReader type can do more than just read lines, one by one. It can read an entire file into a string at once. Consider using the ReadToEnd Function in VB.NET.StreamReader ReadToEnd

Summary. Here we saw how to use the Using-statement in VB.NET, along with StreamReader to read in lines from text files. My experience is that StreamReader is well-performing, and you can read my C# benchmarks which would be equivalent.

Finally: There are other methods on the File class that can simplify some of this code, but StreamReader proves to be an important tool.

Dot Net Perls
© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to