 
        
        Работа с файлами
Для работы с текстовыми файлами в языке C# можно использовать стандартные классы для работы с потоками ввода/вывода. Которые находятся в пространстве имен System.IO.
Чтение из файла
Класс StreamReader разработан для ввода символов в определенной кодировке, тогда как класс Stream разработан для ввода и вывода байтов. StreamReader служит для чтения строк данных из стандартного текстового файла.
StreamReader по умолчанию принимает значения кодировки UTF-8, а не значения кодовой страницы ANSI для текущей системы (если не указано иное значение). UTF-8 правильно обрабатывает символы Юникода и предоставляет согласованные результаты в локализованных версиях операционной системы.
Для того что бы использовать класс StreamReader необходимо объявить объект данного класса.
StreamReader sr = new StreamReader("TestFile.txt", Encoding.Default)
При инициализации объекта класса StreamReader можно использовать конструктор с одним параметром и конструктор с двумя параметрами. В качестве первого параметра указывается имя файла с которого будут считаны данные, в качестве второго – кодировку для отображения данных. Методы класса StreamReader представлены в таблице 1
Таблица 1
| Имя | Описание | 
| Close | Закрывает объект StreamReader и основной поток и освобождает все системные ресурсы, связанные с устройством чтения. (Переопределяет TextReader..::.Close()()().) | 
| CreateObjRef | Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject.) | 
| DiscardBufferedData | Позволяет объекту StreamReader удалять текущие данные. | 
| Dispose | Перегружен. | 
| Equals | Определяет, равен ли заданный объект Object текущему объекту Object. (Унаследовано от Object.) | 
| Finalize | Позволяет объекту Object попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект Object будет утилизирован в процессе сборки мусора. (Унаследовано от Object.) | 
| GetHashCode | Играет роль хэш-функции для определенного типа. (Унаследовано от Object.) | 
| GetLifetimeService | Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject.) | 
| GetType | Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.) | 
| InitializeLifetimeService | Возвращает объект обслуживания во время существования для управления политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject.) | 
| MemberwiseClone | Перегружен. | 
| Peek | Возвращает следующий доступный символ, но не использует его. (Переопределяет TextReader..::.Peek()()().) | 
| Read | Перегружен. Считывает следующий символ или следующий набор символов из входного потока. | 
| ReadBlock | Выполняет чтение максимального количества символов count из текущего потока и записывает данные в буфер buffer, начиная с index. (Унаследовано от TextReader.) | 
| ReadLine | Выполняет чтение строки символов из текущего потока и возвращает данные в виде строки. (Переопределяет TextReader..::.ReadLine()()().) | 
| ReadToEnd | Считывает поток от текущего положения до конца. (Переопределяет TextReader..::.ReadToEnd()()().) | 
| ToString | Возвращает объект String, который представляет текущий объект Object. (Унаследовано от Object.) | 
Пример использования Класса StreamReader
| 001: 002: 003: 004: 005: 006: 007: 008: 009: 010: | using (StreamReader sr = new StreamReader("TestFile.txt")) { string line; // Read and display lines from the file until the end of // the file is reached. while ((line = sr.ReadLine()) != null) { Console.WriteLine(line); } } 
 | 
