You want to read or write to files using the VB.NET programming language. With the File style in the .NET Framework, you can perform efficient and simple manipulations of files, including reads, writes, and appends. Using a set of examples, we look at how you can programmatically test and mutate files in the VB.NET language.
To begin using the File methods and types, please include the Imports System.IO namespace in your program at the top. The Imports directive can sometimes also be added using Visual Studio when it detects a file method is being used.
Imports System.IO ' Remaining program text. ' ... End.
Here, we describe in brief many of the methods available in the VB.NET language and .NET framework on the File type. Some methods have been omitted; also the System.IO namespace provides many other types that are separate from these shared methods.
File.ReadAllBytes Useful for files not stored as plain text. You can open images or movies with this method. File.ReadAllLines Microsoft: "Opens a file, reads all lines of the file with the specified encoding, and closes the file." File.ReadAllText Returns the contents of the text file at the specified path as a string. Very useful for plain text or settings files. File.WriteAllBytes Useful for files such as images that were created or mutated in memory. File.WriteAllLines Stores a string array in the specified file, overwriting the contents. Shown in an example below. File.WriteAllText Writes the contents of a string to a text file. One of the simplest ways to persist text data. File.AppendAllText Use to append the contents string to the file at path. Microsoft: "Appends the specified string to the file, creating the file if it doesn't already exist."
Here, we look at how you can invoke the File.ReadAllLines shared method in the VB.NET programming language. First, the program calls the ReadAllLines method with an argument equal to the file name. Then, the result of the method is stored in the String() array variable. Then, a For Each loop is used on that String(), providing each line in the file for usage elsewhere in code.
--- Program that uses File.ReadAllLines method (VB.NET) ---
Imports System.IO
Module Module1
Sub Main()
' Read the file into an array.
' ... Make sure to create the required file if isn't there.
Dim array As String() = File.ReadAllLines("file.txt")
Dim line As String
For Each line In array
' We now have the line so can use it.
Dim length As Integer = line.Length
Next
End Sub
End ModuleIn the VB.NET programming language, the StreamReader type is ideal for looping over the lines in a file. This can also result in less memory usage than storing the entire file into an array and then looping over that. To use the StreamReader, it is best to use the Using statement, which provides for system-level cleanup of resources. One way to use the ReadLine method in a loop is to use the Do While (True) loop construct with an early exit.
(See Using StreamReader Examples.)
--- Program that uses StreamReader type (VB.NET) ---
Imports System.IO
Module Module1
Sub Main()
' Create StreamReader for the file.
Using reader As StreamReader = New StreamReader("file.txt")
' Do While true loop.
Do While (True)
' Read a line.
Dim line As String = reader.ReadLine
' See if line is Nothing.
If line Is Nothing Then
Exit Do
End If
' Write line to screen.
Console.WriteLine(line)
Loop
End Using
End Sub
End Module
--- Output of the program ---
Each line in the file will be printed.Often when using the VB.NET language, you will want to store collections of strings in the form of List types. However, the File.ReadAllLines method returns a String() array. You can convert the result of the File.ReadAllLines method into a List type using the ToList extension method. Then, you can use each line of the file in a List collection.
--- Program that uses ToList method on file array (VB.NET) ---
Imports System.IO
Module Module1
Sub Main()
' Create a list reference variable.
' ... Then read all lines in the file and convert the array to a List.
Dim list As List(Of String) = File.ReadAllLines("file.txt").ToList
Console.WriteLine(list.Count)
End Sub
End Module
--- Output of the program ---
The number of lines in the file.There are a variety of ways you can use to acquire the line count of a file. In this example, we see that you can actually load the file into an array, and then get the Length of that array. A more efficient way of doing this would be use the StreamReader code above, and then increment an integer on each successful call to the ReadLine method.
~~~ Program that gets line count (VB.NET) ~~~
Imports System.IO
Module Module1
Sub Main()
' Get the length of the file.
' ... Not the fastest way to get the line count.
Dim length As Integer = File.ReadAllLines("file.txt").Length
Console.WriteLine(length)
End Sub
End Module
~~~ Output of the program ~~~
The number of lines in the file.It is possible to take a String() array in the VB.NET programming language and write it as lines to a file. To do this, please use the File.WriteAllLines shared method. In this example, the output file is located in the same directory as the executable and it will contain three lines with the strings "cat", "dog" and "arrow" on it.
~~~ Program that writes array to text file (VB.NET) ~~~
Imports System.IO
Module Module1
Sub Main()
' Create an array of three elements.
Dim array As String() = New String() {"cat", "dog", "arrow"}
' Write the array to a file.
File.WriteAllLines("file.txt", array)
End Sub
End Module
~~~ Output of the program ~~~
The output file will contain the three lines:
cat
dog
arrowIn this example set, we looked at how the VB.NET programming language can read and write (mutate) files. In particular, we focused on text files, but these methods can also act upon more varied file types such as images or binary data. The VB.NET programming language uses the same .NET input/output libraries as the C# language, and these powerful facilities result in an efficient and terse file handling framework.