В этом уроке мы покажем, как средствами C# прочитать текстовый файл и вывести его содержимое на экран компьютера в консоль.
Сначала необходимо с помощью директивы using подключить пространство имен System.IO (в нем описан необходимый для данной задачи класс).
1 |
using System.IO; |
Теперь создадим экземпляр класса StreamReader. StreamReader — это класс который позволяет считывать символы из потока байтов в определенной кодировке. Инициализируем создаваемый экземпляр класса именем файла, из которого будем производить считывание текста.
1 |
StreamReader sr = new StreamReader("textfile.txt"); |
Если указать просто имя файла без пути к нему (как в данном случае textfile.txt), то файл необходимо расположить в каталоге \bin\Debug\ вашего проекта. Если текстовый файл располагается в какой-либо другой папке, то необходимо указать к нему полный путь.
Объявим строковую переменную s. Она нам понадобится для хранения считанной строки.
1 |
string s; |
Далее напишем такой код:
1 2 3 4 5 6 |
while (sr.EndOfStream != true) { s = sr.ReadLine(); Console.WriteLine(s); } |
В цикле while происходит считывание файла построчно с помощью метода класса StreamReader ReadLine(), считанная строка присваивается строковой переменной s. С помощью оператора Console.WriteLine(s) считанная строка выводится в консоль.
Цикл while продолжается до тех пор, пока не будет достигнут конец файла.
Свойство EndOfStream указывается достигнут ли конец файла. Оно имеет логическое значение true, если конец файла достигнут, и логическое значение false в противном случае.
Последнее, что нужно сделать, это закрыть считывающий символьный поток из файла.
1 |
sr.Close(); |
В итоге у вас должен получится следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace StreamReaderDemo { class Program { static void Main(string[] args) { StreamReader sr = new StreamReader("textfile.txt"); string s; while (sr.EndOfStream != true) { s = sr.ReadLine(); Console.WriteLine(s); } sr.Close(); } } } |
Давайте протестируем написанную программу. Для этого запустим её. Нажмём в Visual Studio сочетание клавиш Ctrl + F5 (чтобы консоль не закрылась сразу после выполнения программы).
Как вы видите текст из файла успешно вывелся на экран компьютера в консоль.
Если вы хотите скачать исходник программы, написанной в этом уроке, то нажмите на кнопку ниже.
Скачать исходник
Поделиться в соц. сетях:
Здравствуйте! Запустила Вашу программу. Вместо букв русского алфавита появляются вопросительные знаки. Почему так происходит и что делать?
Здравствуйте! Проблема в кодировке.
Попробуйте использовать следующую строку:
StreamReader sr = new StreamReader(“textfile.txt”, Encoding.UTF8);
вместо StreamReader sr = new StreamReader(“textfile.txt”);
Если не сработает, то поменяйте UTF8 на какое-либо из следующих значений: ASCII, Default, Unicode, UTF7 или UTF32.
Спасибо!
Только при запуске программы (F5) появляется окно «Присоединиться к процессу» (могла бы присоединить screen shot, но некуда). Я, честно говоря, побоялась щелкнуть по кнопке Присоединиться, так как не понимаю, насколько это безопасно (не «поплывут» ли другие приложения?).
На всякий случай: VS установлено в папку Документы, так как у меня не было прав доступа администратора.
Нет, ничего плохого не случится если нажать на эту кнопку.
Сегодня запустила программу, но окно «Присоединение к процессу» не появилось. При Encoding.UTF8, и при Encoding.ASCII результат был такой же, как и в первоначальной версии, т.е. появлялись строки из вопросительных знаков.
При Encoding.Default всё получилось, огромное спасибо! :)