Чтение текстовых файлов. Класс StreamReader.

Класс IO.StreamReader служит для упрощения операций чтения текстовых файлов.

Для примера использования класса StreamReader создадим на диске C:\ файл с именем example.txt, добавим туда одну строчку – example, и сохраним.

Теперь напишем программу для считывания этой строчки из файла:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        StreamReader reader = new StreamReader( "C:\\example.txt" );
        
        // Чтение строки из StreamReader 
        string result = reader.ReadLine(); 
        
        Console.WriteLine(result);
        // Вывод: example

        reader.Close();   
    }
}

Класс StreamReader находится в пространстве имен System.IO, поэтому для удобства во второй строке кода мы импортируем это пространство.

В конце мы вызываем метод StreamReader.Close(), чтобы освободить файл, когда он уже не нужен.

Этот код можно упростить, если использовать конструкцию using:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (StreamReader reader = new StreamReader("C:\\example.txt"))
        {
            string result = reader.ReadLine(); 
            Console.WriteLine(result);
            // Вывод: example
        }  
    }
}

Теперь нам не нужно вызывать метод StreamReader.Close(), он будет вызван автоматически, при выходе их блока using.


Основные методы класса StreamReader

Метод классаОписание
Close()Закрывает объект StreamReader и освобождает все системные ресурсы ассоциированные с данным потоком.
Dispose()Освобождает все ресурсы, использующиеся объектом TextReader, ассоциированным с текущим объектом StreamReader.
ReadLine()Читает строку из файла. Возвращает прочитанную строку.
ReadToEnd()Читает все содержимое файла и возвращает результат в виде строки. Надо осторожно использовать этот метод, т.к. на больших файлах программа может надолго зависнуть.
Peek()Возвращает следующий доступный символ в файле, но не перемещает текущую позицию на него.
Read()Читает следующий символ в файле, и перемещает текущую позицию на него.
Read( Char[] buffer, Int32 index, Int32 count )Читает в буфер (buffer) заданное число символов (count), начиная с указанного в index.
ReadBlock( Char[] buffer, Int32 index, Int32 count )Читает в буфер (buffer) заданное число символов (count), начиная с указанного в index.
avatar
5000
  Подписаться  
Уведомление о