Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Потоки байтов

Потоки файлов.

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

1) двоичного представления данных (классы) BinaryReader, BinaryWriter

2) На уровне байтов FileStream

3) на уровне текста(символов) StreamReader

.Net используется кодировка Unicode, в которой каждый символ кодируется двумя байтами. Классы, работающие с текстом, автоматически выполняют перекодирование из байтов в символы и обратно. Двоичные и байтовые потоки хранят данные в том же виде, в котором они представлены в оперативной памяти, т.е. при обмене с файлом происходит побитовое копирование информации. Двоичные файлы применяются не для просмотра их человеком, а для использования в программах. Доступ к файлам может быть последовательным или произвольным. При котором чтение или запись выполняется по заданному адресу. Текстовые файлы допускают только последовательный доступ. Двоичные или байтовые файлы используют оба метода, прямой доступ с отсутствием преобразования обеспечивает высокую скорость получения нужной информации.

Ввод-вывод фалов на уровне байтов выполняется с помощью класса filestream. Он является наследником абстрактного класса stream, который определяет набор стандартных операций с потоками. Для определения режимов работы с файлом используется стандартные перечисления:

FileMode

FileShare

FileAccess

значения перечисления FileAccess:

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

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

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

значения перечисления FileMode:

1) Append – открыть файл если он существует, и поставить указатель в конец файла, если не существует создать новый файл.

2) Create – создать,если уже существует до будет стерт.

3) CreateNew – создать новый файл, если существует с таким именем, то возникнет исключение IOException

4) Open – открыть существующий файл

5) OpenCreate – открыть файл, если нет то создать файл с таким же именем

6) Truncate – открыть существующий файл, после чего он должен быть обрезан до нулевой длины.

7) режим FileModeAppend – можно использовать только с FileAccessWrite

значения перечисления FileShare:

1) None – совместной использование открытого файла запрещено, запрос на открытие данного файла, завершается сообщением об ошибке.

2) Read – позволяет открывать файл для чтения одновременно нескольким пользователям, если это значение не установлено, запросы на открытие файла для чтения завершаются сообщением об ошибке.

3) ReadWrite – позволяет открывать для чтения и записи одновременно для нескольких пользователей.

4) Write – позволяет открывать файл для записи одновременно для нескольких пользователей.

Для установления желаемой позиции чтения используется метод Seek он имеет 2 параметра. Первый задает смещение в байтах относительно точки отчета задаваемой вторым параметром, точки отчета задаются константами вычисления SeekOrign начала файла Begin текущая позиция Current конец файла End.

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

DirectoryNotFoundException - не существует каталога.

ArgumentException – неверно задан режим открытия файла.

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

<== предыдущая лекция | следующая лекция ==>
Структурное программирование | Отладка программы
Поделиться с друзьями:


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


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



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




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