Бөлісу құралы:


Практическое руководство. Чтение из текстовых файлов в Visual Basic

Метод ReadAllTextMy.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 объекта для чтения содержимого текстового файла в строку, указав тип кодирования пути и файла. В следующем примере содержимое файла test.txt в формате UTF32 считывается в строку и затем отображается в окне сообщения.

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).

  • Файл используется другим процессом или возникает ошибка ввода-вывода (IOException).

  • Путь превышает системную максимальную длину (PathTooLongException).

  • Имя файла или каталога в пути содержит двоеточие (:) или имеет недопустимый формат (NotSupportedException).

  • Недостаточно памяти для записи строки в буфер (OutOfMemoryException).

  • У пользователя отсутствуют необходимые разрешения для просмотра пути (SecurityException).

Не принимать решения о содержимом файла на основе имени файла. Например, файл Form1.vb может не быть исходным файлом Visual Basic.

Проверьте все входные данные перед использованием данных в приложении. Содержимое файла может не соответствовать ожиданиям, а методы чтения файла могут оказаться неудачными.

См. также