Пример 3. Рассмотрим пример программы, которая считывает строки текста, введенного с клавиатуры, а затем записывает его в файл test.txt

Рассмотрим пример программы, которая считывает строки текста, введенного с клавиатуры, а затем записывает его в файл test.txt. Считывание текста продолжается до тех пор, пока пользователь не введет слово «stop».

using System;

using System.IO;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

string str;

StreamWriter fstr_out;

try

{

fstr_out = new StreamWriter("test.txt");

}

catch (IOException exc)

{

Console.WriteLine(exc.Message+"Невозможно открыть файл");

return;

}

Console.WriteLine("Введите текст stop для выхода");

do

{

Console.WriteLine("Введите строку файла:");

str = Console.ReadLine();

if (str!= "stop")

{

str = str + "\r\n";

try

{

fstr_out.Write(str);

}

catch (IOException exc)

{

Console.WriteLine(exc.Message + "Файловая ошибка");

return;

}

}

}

while (str!= "stop");

fstr_out.Close();

}

}

}

Использование класса StreamReader

Для создания символьного потока ввода байтовый поток включается в класс StreamReader следующим образом:

StreamReader(Stream stream)

Параметр stream определяет имя открытого потока. Сразу же после создания класс StreamReader будет автоматически выполнять преобразование байтов в символы.

Пример 4.

Следующая программа считывает тексто­вый файл test.txt и отображает его содержимое на экране.

using System;

using System.IO;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

string str;

FileStream fin;

try

{

fin = new FileStream("test.txt", FileMode.Open);

}

catch (IOException exc)

{

Console.WriteLine(exc.Message+"Невозможно открыть файл");

return;

}

StreamReader fstr_in = new StreamReader(fin);

while ((str = fstr_in.ReadLine())!= null)

Console.WriteLine(str);

fstr_in.Close();

}

}

}

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

Как и в случае с классом StreamWriter, в некоторых случаях можно открыть файл непосредственно, воспользовавшись возможностями класса StreamReader. Для выполнения этой операции служит следующий конструктор:

StreamReader(string filename)

Параметр filename указывает имя открываемого файла. Если файл не существует, генерируется исключение IOException. Если параметр filename представляет собой пустую строку, генерируется исключение ArgumentException.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: