Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 11. Файлы.doc
Скачиваний:
8
Добавлен:
02.05.2019
Размер:
168.96 Кб
Скачать

Лекция 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 и

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

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

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

поток байтов

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

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

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

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

SrringReader

_________________________________________________________________________________

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]