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

Файловый ввод-вывод

Термин «ввод», обозначает процесс поступления в программу данных (чисел, сим­волов) из внешнего источника (клавиатуры, файла, удаленного компьютера). "Вывод" — это процесс поступления данных из программы в окружающую информационную среду (на экран, в файл, на удаленный компьютер).

Для чего применяются файлы? Мы подробно останавливались на использовании методов Console.ReadLine и Console.WriteLine для ввода данных с клавиатуры и вывода их на экран. Однако, данные, введенные с клавиатуры и отображенные на экране, до­ступны лишь временно — при завершении исполнения программы все данные стира­ются. Файлы позволяют сохранять данные после завершения работы программы и, ес­тественно, после выключения компьютера. Содержимое файла можно использовать повторно из одной и той же (или разных) программ. Применение файлов позволяет удобно работать со значительными объемам информации.

Потоки данных и файловый ввод-вывод

Потоки обрабатывают ввод и вывод данных программы. Входной поток можно рассматривать, как последовательность байтов, входящих в программу из устройства-ис­точника, а выходной — как последовательность байтов, попадающих из программы на устройство-приемник.

В языке С# и библиотеке .NET, потоки данных представлены отдельными объекта­ми из классов, находящихся в пространстве имен System.IO.

Потоки иже знакомы нам. Так, например, знакомый читателю метод Console.ReadLine по умолчанию читает дан­ные стандартного потока (объекта одного из классов System.IO, передающего символы, набираемые на клавиатуре, в используемую программу). Аналогичным образом, метод Console.WriteLine по умолчанию записывает данные стандартного потока, при выводе символов на экран.

Классы потоков System.IO эффективно ограждают программиста от обилия низко­уровневых деталей, связанных с устройствами ПК и его операционной системой. Это не только в значительной степени облегчает выполнение операций ввода-вывода, но и предоставляет стандартизированный, не зависящий от состояния устройств, способ вы­полнения операций с потоками. Такие программы намного проще в поддержке — отпа­ла необходимость их изменять, следуя в ногу за всеми изменениями технологии более низкого, аппаратного уровня.

Виды файлов

С точки зрения технического определения, файлы — это последовательности бай­тов. Но любые файлы можно рассмотреть под другим углом, как текстовые или бинар­ные.

Текстовые файлы состоят из битов и байтов, которые, если их правильно интер­претировать, есть ни что иное, как последовательность символов. (Некоторые файлы, например, используют кодировку Unicode.) Они предназначены для прочтения пользо­вателем, как, например, файлы, создаваемые, сохраняемые и открываемые в Notepad.

Бинарные файлы создаются и обрабатываются только компьютерными программами.

Программы, написанные на языке С#, обеспечивают доступ к бинарным файлам через бинарные потоки. По аналогии, доступ к текстовым файлам и их обработка осуществ­ляется через символьные потоки.

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