Создание Windows-приложений на основе Visual C#




Чтение и запись двоичных файлов


Для более общего способа чтения и записи файлов используются классы BinaryReader и BinaryWriter, предназначенные для чтения двоичных данных. Любой файл в конечном итоге представляет собой набор двоичных данных, следовательно, эти данные можно считывать и записывать во внутреннем, двоичном формате. Класс BinaryWriter представляет собой оболочку для байтового потока, управляющей записью двоичных данных. Класс BinaryReader является оболочкой, содержащей байтовый поток, и выполняет чтение двоичных данных.

Рассмотрим приложение, позволяющее считывать файл формата MP3 и записывать фрагмент этого файла. Создайте новое консольное приложение и назовите его BinaryReadWrite. В папку bin/Debug поместите любой музыкальный файл формата MP3, имеющийся на вашем компьютере.

Подключаем пространство имен:

using System.IO;

Добавляем код:

Листинг 2.17.

(html, txt)

Запускаем приложение. Если все сработает без ошибок — на экране появится станадртное сообщение Press any key to continue, в противном случае — поскольку мы включили блок исключений — выйдет диагностическое сообщение. Перейдем в папку bin/Debug. В ней появился файл newmusic.mp3, прослушать который мы можем с помощью любого музыкального проигрывателя.

Рассмотрим перечисления в конструкторах FileStream. Параметр FileMode определяет, каким образом открывается файл (рис. 2.36):

Перечисления FileMode

Рис. 2.36.  Перечисления FileMode

Значения перечисления FileMode указаны в таблице 2.4.

Таблица 2.4. Значение перечисления FileMode

ЗначениеОписание
AppendЕсли файл существует, он открывается, если нет — создается новый. Данные добавляются в конец файла
CreateСоздается новый выходной файл; если файл с таким названием существует, он перезаписывается
CreateNewСоздается новый выходной файл; если файл с таким названием уже существует, генерируется исключение IOException
OpenОткрывается существующий файл; если файла с таким названием не существует, генерируется исключение FileNotFoundException
OpenOrCreateОткрывается существующий файл; если файл не существует, он создается
TruncateОткрывается существующий файл, но его длина усекается до нуля




Содержание  Назад  Вперед