25.07.2017 Views

Intro-CSharp-Book-v2015

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Глава 15. Текстови файлове 629<br />

}<br />

line = reader.ReadLine();<br />

}<br />

}<br />

// Close the resource after you've finished using it<br />

reader.Close();<br />

Сами се убеждавате, че няма нищо трудно в четенето на текстови<br />

файлове. Първата част на програмата вече ни е добре позната – създаваме<br />

променлива от тип StreamReader като в конструктора подаваме името на<br />

файла, от който ще четем. Параметърът на конструктора е пътят до файла,<br />

но тъй като нашият файл се намира в Debug директорията на проекта, ние<br />

задаваме като път само името му. Ако нашият файл се намираше в<br />

директорията на проекта, то тогава като път щяхме да подадем стринга -<br />

"..\..\Sample.txt".<br />

След това създаваме и една променлива – брояч, чиято цел е да брои и<br />

показва на кой ред от файла се намираме в текущия момент.<br />

Създаваме и една променлива, която ще съхранява всеки прочетен ред.<br />

При създаването й направо четем първия ред от текстовия файл. Ако<br />

текстовият файл е празен, методът ReadLine() на обекта StreamReader ще<br />

върне null.<br />

За същинската част – прочитането на файла ред по ред, използваме while<br />

цикъл. Условието за изпълнение на цикъла е докато в променливата line<br />

има записано нещо, т.е. докато има какво да четем от файла. В тялото на<br />

цикъла задачата ни се свежда до увеличаване на стойността на променливата-брояч<br />

с единица и след това да отпечатаме текущия ред от файла в<br />

желания от нас формат. Накрая отново с ReadLine() четем следващия ред<br />

от файла и го записваме в променливата line. За отпечатване използваме<br />

един метод, който ни е отлично познат от задачите, в които се е изисквало<br />

да се отпечата нещо на конзолата – WriteLine().<br />

След като сме прочели нужното ни от файла, отново не бива да забравяме<br />

да затворим обекта StreamReader, за да избегнем загубата на ресурси. За<br />

това ползваме метода Close().<br />

Винаги затваряйте инстанциите на StreamReader след като<br />

приключите работа с тях. В противен случай рискувате да<br />

загубите системни ресурси. За затваряне използвайте<br />

метода Close() или конструкцията using.<br />

Резултатът от изпълнението на програмата би трябвало да изглежда така:<br />

Line 1: This is our first line.<br />

Line 2: This is our second line.<br />

Line 3: This is our third line.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!