Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Значения перечисления FileMode




Значения перечисления FileAccess

Read Открыть файл только для чтения

ReadWrite Открыть файл для чтения и записи

Write Открыть файл только для записи

Append Открыть файл, если он существует, и установить текущий указатель в конец файла. Если файл не существует, создать новый файл

Create Создать новый файл. Если в каталоге уже существует файл с таким же именем, он будет стерт

CreateNew Создать новый файл. Если в каталоге уже существует файл с таким же именем, возникает исключение IOException Open " Открыть существующий файл

OpenOrCreate Открыть файл, если он существует. Если нет, создать файл с таким именем

Truncate Открыть существующий файл. После открытия он должен быть обрезан до нулевой длины

 

12) Потоки байтов.

Ввод-вывод в файл на уровне байтов выполняется с помощью класса FilleStream, который является наследником абстрактного класса Stream, определяющего набор стандартных операций с потоками.

Элементы класса Stream

BeginRead, BeginWrite Начать асинхронный ввод или вывод

CanRead, CanWrite CanSeek Свойства, определяющие, какие операции поддерживает поток: чтение, прямой доступ и/или запись

Сlose Закрыть текущий поток и освободить связанные с ним ресурсы (сокеты, указатели на файлы и т. п.)

EndRead, EndWrite Ожидать завершения асинхронного ввода; закончить асинхронный вывод

Flush Записать данные из буфера в связанный с потоком источник данных и очистить буфер. Если для данного потока буфер не используется, то этот метод ничего не делает

Length Возвратить длину потока в байтах

Position Возвратить текущую позицию в потоке

Read, ReadByte Считать последовательность байтов (или один байт) из текущего потока и переместить указатель в потоке на количество считанных байтов

Seek Установить текущий указатель потока на заданную позицию

SetLength Установить длину текущего потока

Write, WriteByte Записать последовательность байтов (или один байт) в текущий поток и переместить указатель в потоке на количество записанных байтов

Класс FileStream реализует эти элементы для работы с дисковыми файлами. Для определения режимов работы с файлом используются стандартные перечисления FileMode, FileAccess и FileShare

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

FileNotFoundException, если файла с указанным именем в указанном каталоге не существует;

DirectoryNotFoundException, если не существует указанный каталог;

Argument Exception, если неверно задан режим открытия файла;

IOException, если файл не открывается из-за ошибок ввода-вывода.

 

13) Асинхронный ввод-вывод.

Класс Stream (и, соответственно, FileStream) поддерживает два способа выполнения операций ввода-вывода: синхронный и асинхронный. По умолчанию файлы открываются в синхронном режиме, то есть последующие операторы выполняются только после завершения операций ввода-вывода. Для длительных файловых операций более эффективно выполнять ввод-вывод асинхронно, в отдельном потоке выполнения1. При этом в первичном потоке можно выполнять другие операции.

Для асинхронного ввода-вывода необходимо открыть файл в асинхронном режиме, для этого используется соответствующий вариант перегруженного конструктора. Асинхронная операция ввода инициируется с помощью метода BeginRead. Помимо характеристик буфера, в который выполняется ввод, в этот метод передается делегат, задающий метод, выполняемый после завершения ввода.

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

Аналогично выполняется и асинхронный вывод.

14) Потоки символов.

Символьные потоки StreamWriter и StreamReader работают с Unicode-символами, следовательно, ими удобнее всего пользоваться для работы с файлами, предназначенными для восприятия человеком. Эти потоки являются наследниками классов TextWriter и TextReader соответственно, которые обеспечивают их большей частью функциональности.

Наиболее важные элементы базового класса TextWriter

Close Закрыть файл и освободить связанные с ним ресурсы. Если в процессе записи используется буфер, он будет автоматически очищен

Flush Очистить все буферы для текущего файла и записать накопленные в них данные в место их постоянного хранения. Сам файл при этом не закрывается

NewLine Используется для задания последовательности символов, означающих начало новой строки. По умолчанию используется последовательность «возврат каретки» — «перевод строки» (\r\n)

Write Записать фрагмент текста в поток

WriteLinе Записать строку в поток и перейти на другую строку

Наиболее важные элементы класса TextReader

Peek Возвратить следующий символ, не изменяя позицию указателя в файле

Read Считать данные из входного потока

ReadBlock Считать из входного потока указанное пользователем количество символов и записать их в буфер, начиная с заданной позиции

ReadLine Считать строку из текущего потока и возвратить ее как значение типа string. Пустая строка (null) означает конец файла (EOF)

ReadToEnd Считать все символы до конца потока, начиная с текущей позиции, и возвратить считанные данные как одну строку типа string

 

15) Двоичные потоки.

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

Двоичный файл открывается на основе базового потока, в качестве которого чаще всего используется поток FileStream. Входной двоичный поток содержит перегруженные методы чтения для всех простых встроенных типов данных.

Наиболее важные элементы класса BinaryWriter

BaseStream Базовый поток, с которым работает объект BinaryWriter

Close Закрыть поток

Flush Очистить буфер

Seek Установить позицию в текущем потоке

Write Записать значение в текущий поток

Наиболее важные элементы класса BinaryReader

BaseStream Базовый поток, с которым работает объект BinaryReader

Close Закрыть поток

PeekChar Возвратить следующий символ без перемещения внутреннего указателя в потоке

Read Считать поток байтов или символов и сохранить в массиве, передаваемом как входной параметр

ReadXXXX Считать из потока данные определенного типа (напримерь ReadByte)

 

16) Консольный ввод-вывод.

Для организации ввода и вывода используется известный вам класс Console, определенный в пространстве имен System. В этом классе определены три стандартных потока: входной поток Console.In класса TextReader и выходные потоки Consolе.Out и Console.Error класса TextWriter. По умолчанию входной поток связан с клавиатурой, а выходные — с экраном, однако можно перенаправить эти потоки на другие устройства с помощью методов SetIn и SetOut или средствами операционной системы (перенаправление с помощью операций <, > и»). При обмене с консолью можно применять методы указанных потоков, но чаще используются методы класса Console — Read, ReadLine, Write и WriteLine, которые просто передают управление методам нижележащих классов In, Out и Error.

Использование не одного, а двух выходных потоков полезно при желании разделить нормальный вывод программы и её сообщения об ошибках. Например, нормальный вывод программы можно перенаправить в файл, а сообщения об ошибках — на консоль или в файл журнала.

 

17) Работа с каталогами и файлами.

В пространстве имен System.I0 есть четыре класса, предназначенные для работы с физическими файлами и структурой каталогов на диске: Directory, File, Directorylnfo и Filelnfo. С их помощью можно выполнять создание, удаление, перемещение файлов и каталогов, а также получение их свойств.

Классы Directory и File реализуют свои функции через статические методы. Directorylnfo и Filelnfo обладают схожими возможностями, но они реализуются путем создания объектов соответствующих классов. Классы Directorylnfo и Filelnfo происходят от абстрактного класса FileSystemlnfo, который снабжает их базовыми свойствами

Свойства класса FileSystemlnfo

Attributes Получить или установить атрибуты для данного объекта файловой системы. Для этого свойства используются значения перечисления FileAttributes

CreationTime Получить или установить время создания объекта файловой системы

Exists Определить, существует ли данный объект файловой системы

Extension Получить расширение файла Full Name Возвратить имя файла или каталога с указанием полного пути LastAccessTime Получить или установить время последнего обращения к объекту файловой системы

LastWriteTime Получить или установить время последнего внесения изменений в объект файловой системы

Name Возвратить имя файла.

 

Элементы класса Directorylnfo

Create, CreateSubDirectory Создать каталог или подкаталог по указанному пути в файловой системе

Delete Удалить каталог со всем его содержимым

GetDirectories Возвратить массив строк, представляющих все подкаталоги

GetFiles Получить файлы в текущем каталоге в виде массива объектов класса Filelnfo

MoveTo Переместить каталог и все его содержимое на новый адрес в файловой системе

Parent Возвратить родительский каталог

 




Поделиться с друзьями:


Дата добавления: 2017-01-13; Просмотров: 357; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.03 сек.