Edit

Share via


How to: Read From Text Files in Visual Basic

The ReadAllText method of the My.Computer.FileSystem object allows you to read from a text file. The file encoding can be specified if the contents of the file use an encoding such as ASCII or UTF-8.

If you are reading from a file with extended characters, you will need to specify the file encoding.

Note

To read a file a single line of text at a time, use the OpenTextFileReader method of the My.Computer.FileSystem object. The OpenTextFileReader method returns a StreamReader object. You can use the ReadLine method of the StreamReader object to read a file one line at a time. You can test for the end of the file using the EndOfStream method of the StreamReader object.

To read from a text file

Use the ReadAllText method of the My.Computer.FileSystem object to read the contents of a text file into a string, supplying the path. The following example reads the contents of test.txt into a string and then displays it in a message box.

Dim fileReader As String
fileReader = My.Computer.FileSystem.ReadAllText("test.txt")
MsgBox(fileReader)

To read from a text file that is encoded

Use the ReadAllText method of the My.Computer.FileSystem object to read the contents of a text file into a string, supplying the path and file encoding type. The following example reads the contents of the UTF32 file test.txt into a string and then displays it in a message box.

Dim fileReader As String
fileReader = My.Computer.FileSystem.ReadAllText("test.txt",
   System.Text.Encoding.UTF32)
MsgBox(fileReader)

To read from a text file into a RichTextBox control

To load the contents of a text file directly into a RichTextBox control, read the file contents into a string and assign it to the Text property of the RichTextBox. The following example shows how to read a text file and load it into a RichTextBox control.

' Load text file into a RichTextBox control
' Note: This assumes RichTextBox1 is a control on your form
Dim fileText As String
fileText = My.Computer.FileSystem.ReadAllText("test.txt")
' RichTextBox1.Text = fileText

For better error handling and file path management, you can use the following approach that constructs a proper file path and handles potential exceptions. This approach avoids hardcoded drive paths that can cause issues on different systems:

' Load text file into a RichTextBox control using a specific path
Try
    Dim filePath As String = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "test.txt")
    Dim fileText As String = My.Computer.FileSystem.ReadAllText(filePath)
    ' RichTextBox1.Text = fileText
Catch ex As System.IO.FileNotFoundException
    MsgBox("File not found: " & ex.Message)
Catch ex As Exception
    MsgBox("Error reading file: " & ex.Message)
End Try

Note

When specifying file paths, avoid using hardcoded absolute paths like "C:\temp\file.txt" as these can cause issues on systems where the drive letter or directory structure is different. Instead, use relative paths or construct paths using Combine to ensure your code works across different environments.

Robust Programming

The following conditions may cause an exception:

Do not make decisions about the contents of the file based on the name of the file. For example, the file Form1.vb may not be a Visual Basic source file.

Verify all inputs before using the data in your application. The contents of the file may not be what is expected, and methods to read from the file may fail.

See also