if(str != 'стоп') {

str = str + ' '; // добавить новую строку fstr_out.Write(str);

}

} while(str != 'стоп');

} catch(IOException exc) {

Console.WriteLine('Ошибка ввода-вывода: ' + exc.Message);

} finally {

fstr_out.Close();

}

}

}

В некоторых случаях файл удобнее открывать средствами самого класса StreamWriter. Для этого служит один из следующих конструкторов:

StreamWriter(string путь)

StreamWriter(string путь, bool append)

где путь — это имя открываемого файла, включая полный путь к нему. Если во второй форме этого конструктора значение параметра append равно true, то выводимые данные присоединяются в конец существующего файла. В противном случае эти данные перезаписывают содержимое указанного файла. Но независимо от формы конструктора файл создается, если он не существует. При появлении ошибок ввода-вывода в обоих случаях генерируется исключение IOException. Кроме того, могут быть сгенерированы и другие исключения.

Ниже приведен вариант представленной ранее сервисной программы ввода с клавиатуры и вывода на диск, измененный таким образом, чтобы открывать выходной файл средствами самого класса StreamWriter.

// Открыть файл средствами класса StreamWriter.

using System; using System.10;

class KtoD {

static void Main() { string str;

StreamWriter fstr_out = null; try {

// Открыть файл, заключенный в оболочку класса StreamWriter.

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

Console.WriteLine('Введите текст, а по окончании — 'стоп'.'); do {

-Console.Write (': '); str = Console.ReadLine ();

if(str != 'стоп') {

str = str + ' '; // добавить новую строку fstr_out.Write(str);

}

} while(str != 'стоп');

} catch(IOException exc) {

Console.WriteLine('Ошибка ввода-вывода: ' + exc.Message);

} finally {

if(fstr_out != null) fstr_out.Close() ;

}

}

}

Применение класса StreamReader

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

StreamReader(Stream поток)

где поток обозначает имя открытого потока. Этот конструктор генерирует исключение ArgumentNullException, если поток оказывается пустым, а также исключение ArgumentException, если поток не открыт для ввода. После своего создания объект класса StreamReader выполняет автоматическое преобразование байтов в символы. По

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ОБРАНЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату