Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс_ред1 С#.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.8 Mб
Скачать

Файлы и потоки

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

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

Все операции с файлами выполняются в программах С# с помощью так называемых потоков данных (data stream). Программы могут выполнять над потоками данных 3 операции:

  • запись данных в поток,

  • чтение данных из потока,

  • позиционирование.

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

Программа С# может работать с потоками нескольких типов:

  • стандартными потоками ввода и вывода,

  • потоками, связанными с локальными файлами,

  • потоками, связанными с файлами в оперативной памяти.

Стандартные потоки и классы

Стандартные потоки

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

Практически все программы, примеры которых приводились в данном курсе, работают со стандартными потоками ввода и вывода. Для вывода данных в стандартный поток вывода применялись методы System.Console.Write() и System.Console.WriteLine(). Ввод данных из стандартного потока выполнялся с помощью метода System.Console.ReadLine().

Основные классы ввода и вывода

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

Класс BinaryReader предназначен для чтения блоков данных из потоков ввода на уровне отдельных байтов. Обычно для чтения объектов из файлов, таких, как строки и числа, программисты используют другие, более мощные классы.

Класс BinaryWriter служит в качестве низкоуровневого средства записи данных в потоки вывода.

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

С помощью статических методов класса Directory программа может получать списки каталогов и подкаталогов, создавать и удалять каталоги, а также выполнять над каталогами другие подобные операции.

Класс Path обеспечивает методы и свойства, с помощью которых программы могут работать с именами и полными путями каталогов.