Чтение текста из файла

В следующих примерах демонстрируется синхронное и асинхронное чтение текста из текстового файла с использованием .NET для классических приложений. В обоих примерах при создании экземпляра класса StreamReader указывается относительный или абсолютный путь к файлу.

Примечание.

Эти примеры кода не применяются к приложениям универсальной платформы Windows (UWP), так как среда выполнения Windows предоставляет различные типы потоков для чтения и записи в файлы. Дополнительные сведения см. в статье UWP для работы с файлами. Примеры, демонстрирующие преобразование между потоками платформа .NET Framework и среда выполнения Windows потоками, см. в статье "Практическое руководство. Преобразование между потоками платформа .NET Framework и среда выполнения Windows потоками".

Необходимые компоненты

  • Создайте текстовый файл с именем TestFile.txt в той же папке, что и приложение.

    Добавьте некоторое содержимое в текстовый файл. Примеры, приведенные в этой статье, записывают содержимое текстового файла в консоль.

Чтение файла

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

  1. Создайте экземпляр StreamReader.
  2. StreamReader.ReadToEnd() Вызовите метод и назначьте результат строке.
  3. Запишите выходные данные в консоль.
try
{
    // Open the text file using a stream reader.
    using StreamReader reader = new("TestFile.txt");

    // Read the stream as a string.
    string text = reader.ReadToEnd();

    // Write the text to the console.
    Console.WriteLine(text);
}
catch (IOException e)
{
    Console.WriteLine("The file could not be read:");
    Console.WriteLine(e.Message);
}
Try
    ' Open the text file using a stream reader.
    Using reader As New StreamReader("TestFile.txt")

        ' Read the stream as a string.
        Dim text As String = reader.ReadToEnd()

        ' Write the text to the console.
        Console.WriteLine(text)

    End Using
Catch ex As IOException
    Console.WriteLine("The file could not be read:")
    Console.WriteLine(ex.Message)
End Try

Асинхронное чтение файла

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

  1. Создайте экземпляр StreamReader.
  2. StreamReader.ReadToEndAsync() Дождите метод и назначьте результат строке.
  3. Запишите выходные данные в консоль.
try
{
    // Open the text file using a stream reader.
    using StreamReader reader = new("TestFile.txt");

    // Read the stream as a string.
    string text = await reader.ReadToEndAsync();

    // Write the text to the console.
    Console.WriteLine(text);
}
catch (IOException e)
{
    Console.WriteLine("The file could not be read:");
    Console.WriteLine(e.Message);
}
Try
    ' Open the text file using a stream reader.
    Using reader As New StreamReader("TestFile.txt")

        ' Read the stream as a string.
        Dim text As String = Await reader.ReadToEndAsync()

        ' Write the text to the console.
        Console.WriteLine(text)

    End Using
Catch ex As IOException
    Console.WriteLine("The file could not be read:")
    Console.WriteLine(ex.Message)
End Try