Примеры программ работы с файлами

Пример 1.

Программа создает текстовый файл, в который записываются две строки.

Вторая строка формируется из преобразованных численных значений переменных

и поясняющего текста. Содержимое файла можно посмотреть в любом

текстовом редакторе. Файл создается в том же каталоге, куда среда записывает

исполняемый файл. По умолчанию это каталог...\ConsoleApplication1\bin\Debug.

Кроме того, необходимо добавлять оператор

using System.IO;

при работе с файлами.

// Текст программы

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

namespace вывод_в_текстовый_файл

{

class Program

{

static void Main(string[] args)

{

try

{

StreamWriter f = new StreamWriter("text.txt");

f.WriteLine("Вывод в текстовый файл:");

double a = 12.234;

int b = 29;

f.WriteLine(" a = {0,6:C} b = {1,2:X}", a, b);

f.Close();

Console.WriteLine("Вывод успешен");

Console.ReadLine();

}

catch (Exception e)

{

Console.WriteLine("Error: " + e.Message);

Console.ReadLine();

return;

}

}

}

}

Конструкция try …catch используется для отслеживания исключительных ситуаций (ошибок) при работе с файлом.

Исключительная ситуация (или исключение) — это ошибка, которая возникает во время выполнения программы. Используя С#-подсистему обработки исключи-

тельных ситуаций, с такими ошибками можно справляться. Эта подсистема в С#

включает в себя усовершенствованные методы, используемые в языках C++ и Java.

Поэтому эта тема будет знакомой для C++- и Java-программистов. Однако обработка

исключений в С# отличается ясностью и полнотой реализации.

Преимущество подсистемы обработки исключений состоит в автоматизации создания большей части кода, который ранее необходимо было вводить в программы

"вручную". Например, в любом компьютерном языке при отсутствии такой подсистемы практически каждый метод возвращал коды ошибок, и эти значения проверялись вручную при каждом вызове метода. Такой подход довольно утомителен, кроме того, при этом возможно возникновение ошибок. Обработка исключений упрощает "работу над ошибками", позволяя в программах определять блок кода, именуемый обработчиком исключении, который будет автоматически выполняться при возникновении опрделенной ошибки. В этом случае не обязательно проверять результат выполнения каждой конкретной операции или метода вручную. Если ошибка возникнет, ее должным образом обработает обработчик исключений.

Еще одним преимуществом обработки исключительных ситуаций в С# является

определение стандартных исключений для таких распространенных программных

ошибок, как деление на нуль или попадание вне диапазона определения индекса.

Чтобы отреагировать на возникновение таких ошибок, программа должна отслеживать

и обрабатывать эти исключения. Без знания возможностей С#-подсистемы обработки исключений успешное программирование на С# попросту невозможно.

Класс Exception

В С# исключения представляются классами. Все классы исключений должны быть выведены из встроенного класса исключений Exception, который является частью

пространства имен System. Таким образом, все исключения — подклассы класса

Exception.

Из класса Exception выведены классы SystemException и ApplicationException.

Они поддерживают две общие категории исключений, определенные в С#: те, которые

генерируются С#-системой динамического управления, или общеязыковым средством

управления (Common Language Runtime — CLR), и те, которые генерируются приклад-

ными программами. Но ни класс SystemException, ни класс ApplicationException не привносят ничего нового в дополнение к членам класса Exception. Они просто определяют вершины двух различных иерархий классов исключений.

Система С# определяет встроенные исключения, которые выводятся из класса SystemException. Например, при попытке выполнить деление на нуль генерируется

исключение класса DivideByZeroException. Как будет показано ниже в этой главе,

вы сможете создавать собственные классы исключений, выводя их из класса ApplicationException.

Управление С#-механизмом обработки исключений зиждется на четырех ключе-

вых словах: try, catch, throw и finally. Они образуют взаимосвязанную подсистему, в которой использование одного из них предполагает использование другого. В

Если кратко, то их работа состоит в следующем. Программные инструкции, которые нужно проконтролировать на предмет исключений, помещаются в try-блок. Если исключение таки возникает в этом блоке, оно дает знать о себе выбросом определенного рода информации. Это выброшенное исключение может быть перехвачено программным путем с помощью catch-блока и обработано соответствующим образом. Системные исключения автоматически генерируются

С#-системой динамического управления. Чтобы сгенерировать исключение вручную,

используется ключевое слово throw. Любой код, который должен быть обязательно

выполнен при выходе из try-блока, помещается в блок finally.


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



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