如何:从文本文件中读取 - Visual Basic

福利攻略 2025-12-08 19:55:16

ReadAllText 对象的方法 My.Computer.FileSystem 允许从文本文件中读取。 如果文件的内容使用 ASCII 或 UTF-8 等编码,则可以指定文件编码。

如果要从具有扩展字符的文件读取,则需要指定文件编码。

注释

要逐行读取文本文件,请使用 OpenTextFileReader 对象的 My.Computer.FileSystem 方法。 方法 OpenTextFileReader 返回 对象 StreamReader 。 可以使用 ReadLine 方法逐行读取 StreamReader 对象的文件。 可以使用 EndOfStream 对象的 StreamReader 方法测试文件的结尾。

读取文本文件

通过使用ReadAllText对象的My.Computer.FileSystem方法,将文本文件内容读取到字符串中,并传递路径。 以下示例将 test.txt 的内容读入字符串,然后将其显示在消息框中。

Dim fileReader As String

fileReader = My.Computer.FileSystem.ReadAllText("test.txt")

MsgBox(fileReader)

从已编码的文本文件中读取

使用ReadAllText对象的My.Computer.FileSystem方法将文本文件的内容读取到字符串中,并指定路径和文件编码类型。 以下示例将 UTF32 文件的内容读入字符串 test.txt,然后将其显示在消息框中。

Dim fileReader As String

fileReader = My.Computer.FileSystem.ReadAllText("test.txt",

System.Text.Encoding.UTF32)

MsgBox(fileReader)

从文本文件读取到 RichTextBox 控件

若要将文本文件的内容直接加载到 RichTextBox 控件中,请将文件内容读入字符串,并将其 Text 分配给 RichTextBox 的属性。 以下示例演示如何读取文本文件并将其加载到 RichTextBox 控件中。

' 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

为了更好地处理错误和文件路径管理,可以使用以下方法来构造正确的文件路径并处理潜在的异常。 此方法避免了可能导致不同系统上出现问题的硬编码驱动器路径:

' 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

注释

指定文件路径时,请避免使用硬编码的绝对路径(如“C:\temp\file.txt”),因为这些路径可能会导致驱动器号或目录结构不同的系统出现问题。 相反,请使用相对路径或使用 Combine 构造路径以确保代码在不同环境中都能正常工作。

可靠的编程

以下条件可能会导致异常:

路径对于以下原因之一无效:它是一个零长度字符串,它只包含空格,它包含无效字符,或者它是设备路径(ArgumentException)。

路径无效,因为它是Nothing(ArgumentNullException)。

该文件不存在(FileNotFoundException)。

该文件由另一个进程使用,或者发生 I/O 错误(IOException)。

路径超过系统定义的最大长度(PathTooLongException)。

路径中的文件或目录名称包含冒号(:)或格式无效(NotSupportedException)。

没有足够的内存将字符串写入缓冲区(OutOfMemoryException)。

用户缺少查看路径所需的权限(SecurityException)。

不要根据文件的名称决定文件的内容。 例如,文件Form1.vb可能不是 Visual Basic 源文件。

在应用程序中使用数据之前验证所有输入。 文件的内容可能不是预期内容,从文件读取的方法可能失败。

另请参阅

FileSystem

ReadAllText

从文件读取

如何:从 Comma-Delimited 文本文件中读取

如何:从固定宽度的文本文件中读取

如何:从具有多种格式的文本文件中读取

故障排除:读取和写入文本文件

演练:在 Visual Basic 中操作文件和文件夹

文件编码