VB.NET StreamWriter

Using keyword

StreamWriter writes data to a text file. It can write lines of text or strings to the file. It is easy to use. Ideally it should be used inside a VB.NET Using statement. This ensures the correct disposal of its resources.

Using StreamReader


New keyword, constructor invocation

Here we use StreamWriter to create a new file, and then write two lines of text to it along with two newlines. Note how the System.IO namespace is imported at the top. This makes it easier to access StreamWriter.

Module that uses StreamWriter: VB.NET

Imports System.IO

Module Module1
    Sub Main()
	Using writer As StreamWriter = New StreamWriter("myfile.txt")
	    writer.Write("One ")
	    writer.WriteLine("two 2")
	End Using
    End Sub
End Module

Output file

One two 2
Main method

In the Main entry point, the StreamWriter is instantiated and the file "myfile.txt" is opened for writing. This file is located in the same directory as the application—you can change to path to another location if needed.

Next:The Write call and the two WriteLine calls write the three Strings to the file. The file's contents are listed in the comment.

Append text

Here we use StreamWriter to append lines of text to a file. This is more efficient than reading in the entire file each time, as only the last part of the file needs to be accessed.

Module that uses StreamWriter to append: VB.NET

Imports System.IO

Module Module1
    Sub Main()
	' 1: Append the first line of text to a new file.
	Using writer As StreamWriter = New StreamWriter("C:\append.txt", True)
	    writer.WriteLine("First line appended; 1")
	End Using

	' 2: Append the second line
	Using writer As StreamWriter = New StreamWriter("C:\append.txt", True)
	    writer.WriteLine("Second line appended; 2")
	End Using
    End Sub
End Module

Output file

First line appended; 1
Second line appended; 2

The first part of the example opens the file at the absolute path "C:\append.txt". The second argument to the StreamWriter constructor is the Boolean True. This specifies the append overload.

Then:The file is opened again, and a second line is appended to it. The text file contents are shown in the final comment.

For loop

Here we use a For-loop inside of a StreamWriter statement. When you have to loop and add text to a file, you should avoid creating many file handles and simply use the same one. This improves performance.

For Loops
Module that uses For loop and StreamWriter: VB.NET

Imports System.IO

Module Module1
    Sub Main()
	' Create new file
	Using writer As StreamWriter = New StreamWriter("loop.txt")
	    ' Loop through ten numbers
	    Dim i As Integer
	    For i = 0 To 10 - 1
		' Write number with format string
		writer.Write("{0:0.0} ", i)
	    Next i
	End Using
    End Sub
End Module

Output file

0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0

The file is opened, and one Windows file handle is created. Then, that same system resource is used to write ten numbers to the file. The Write call in the For-loop specifies a format string.

Then:The format string prints the Integer with one decimal place. All the numbers are written to the same line.

Integer Information


Programming tip

You need to specify the encoding of your target file in the StreamWriter constructor if it is not the default UTF8. Internally, StreamWriter specifies UTF8 by default. The encoding you use depends on what language your program needs.


This section provides information

StreamWriter in VB.NET has a few more Functions on it, but most of them are not often needed. For example, the Close and Dispose calls are occasionally useful, but not if you use the Using statement.

Tip:If you are not employing the Using construct in VB.NET, make sure to always call Close and Dispose.

Note:The Using statement is implemented with Finally logic.
This ensures cleanup always occurs.


The VB.NET programming language

Here we saw examples of using StreamWriter in VB.NET. This is an easy way to write to files in the .NET platform. Please refer to the documents at this site for StreamReader if you need to read files.

VB.NET: File