Открытие и закрытие файла. Елабуга 2013 Лабораторная работа №3

Файлы

Елабуга 2013
Лабораторная работа №3

Файлы

Цель: Научиться писать программы на C#, работающие с файлами.

Теоретические сведения

В C# ввод/вывод данных реализуют с помощью потоков. Под потоком понимается вывод либо получение информации. Поток связан с физическим устройством посредством системы ввода/вывода C#. Потоки используются для работы с консолью и файлами.

На самом низком уровне все операции ввода/вывода в C# оперируют байтами, потому что большинство устройств, предназначенных для выполнения операций ввода/вывода, являются байт-ориентированными. Но байтовые потоки неудобно использовать при выполнении символьного ввода/вывода. Преимущество символьных потоков проявляется в том, что они оперируют непосредственно с символами Unicode. Поэтому, если возникает потребность в хранении текста Unicode, наилучшим выбором в этом случае будут символьные потоки. Поэтому в C# используются несколько классов, преобразующих байтовые потоки в символьные и обратно.

Рассмотрим сначала байт-ориентированный ввод/вывод в файл, а затем символьный.

Байт-ориентированный ввод/вывод в файл

Для создания байтового потока, связанного с файлом, используется класс FileStream. Все классы потоков (в том числе и класс FileStream) определены в пространстве имен System.IO. Поэтому обычно в начало любой программы, применяющей классы потоков, включается конструкция:

using System.IO;

Открытие и закрытие файла

При создании байтового потока, связанного с файлом, требуется сформировать объект FileStream. Синтаксис создания следующий:

FileStream(string filename, FileMode mode);

где filename – указывает имя открываемого файла, которое может включать полностью определенный путь к нему.

mode – определяет, каким образом открывается файл. Может принимать одно из следующих значений (таблица 1).


Таблица 1

Значение Описание
FileMode.Append Выводимые данные добавляются после данных, находящихся в файле.
FileMode.Create Создается новый выходной файл. Любой ранее созданный файл с аналогичным именем уничтожается.
FileMode.CreateNew Создается новый выходной файл.
FileMode.Open Открывается существующий файл.
FileMode.OpenOrCreate В случае наличия файла происходит его открытие, если файл не существует, он создается.
FileMode.Truncate Открывается существующий файл, но его длина усекается до нуля.

При любой работе с файлами, необходимо осуществлять проверку возможных ошибок. В C# для этого используется система обработки исключений. Исключения – это возможные ошибки, возникающие при работе программы.

При открытии файла возможны следующие исключения:

· FileNotFoundException – файл не может быть открыт, поскольку он не существует;

· IOException – файл не открывается из-за ошибки ввода/вывода;

· ArgumentNullException – имя файла выражается нулевым значением,

· ArgumentException – параметр, задающий режим открытия файла, некорректен,

· SecurityException – пользователь не имеет прав доступа,

· DirectoryNotFoundException – указанный каталог не существует.

Рассмотрим пример открытия файла test.txt и обработки возможных исключений:


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



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