Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
171
Добавлен:
24.02.2016
Размер:
169.47 Кб
Скачать

Лекция 11. Файлы в с# Основные понятия. Классы .Net для работы с файлами

Файл - именованная информация на внешнем носителе (на жестком или гибком магнитном диске). Логически файл можно представить как конечное количество последовательных байтов, поэтому такие устройства, как дисплей, клавиатура и принтер, также можно рассматривать как частные случаи файлов.

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

Чтение-запись в языке C# выполняется с помощью подсистемы ввода-вывода и классов библиотеки .NET. Рассмотрим обмен данными с файлами с помощью консоли, который реализуется с помощью потоков.

Поток (stream)– это любой перенос данных от источника к приемнику. Потоки обеспечивают работу как со стандартными, так и с определенными пользователем типами данных. Поток определяется как последовательность байтов и не зависит от конкретного устройства, с которым производиться обмен (оперативная память, файл на диске, клавиатура и принтер).

Обмен с потоком для повышения скорости передачи данных производиться, как правило, через специальную область оперативной памяти – буфер.Буфер выделяется длякаждого открытого файла. Призаписив файл вся информация сначала направляется в буфер и там накапливается до тех пор, пока весь буфер не заполниться. Только после этого и после специальной команды сброса происходит передача данных на внешнее устройство. Причтении из файла данные вначале считываются в буфер, причем не столько, сколько запрашивается, а сколько помещается в буфер. Механизм буферизации позволяет более быстро и эффективно обмениваться информацией с внешними устройствами.

Для поддержки потоков библиотека .NETсодержит иерархию классов, основная часть которой представлена на рисунке 11.1 Эти классы определены в пространстве именSystem.IO.

Рисунок 11.1 – Основные классы пространства имен System.IO

Классы библиотеки позволяют работать в различных режимах с файлами, каталогами и областями оперативной памяти. Краткое описание классов приведено в таблице 11.1.

Таблица 11.1 - Основные классы пространства именSystem.IO

Класс Описание

BinaryReader, Чтение и запись значений простых встроенных типов

BinaryWriter(целочисленных, логических, строковых)

во внутренней форме представления

BufferedStreamВременное хранение потока байтов (например, для последующего

переноса в постоянное хранилище)

Directory, Работа с каталогами или физическими файлами: создание,

DirectoryInfo,File, удаление, получение свойств. Возможности классовFileи

FileInfoDirectoryреализованы в основном в виде статических методов.

Аналогичные классы DirectoryInfoиFileInfoиспользуют обычные методы

FileStreamПроизвольный (прямой) доступ к файлу, представленному как

поток байтов

MemoryStreamПроизвольный доступ к потоку байтов в оперативной памяти

StreamWriter, Чтение из файла и запись в файл текстовой информации

StreamReader( произвольный доступ не поддерживается )

StringReader, Работа с текстовой информацией в оперативной памяти

SrringReader

_________________________________________________________________________________