- •Лекция 11. Файлы в с# Основные понятия. Классы .Net для работы с файлами
- •Виды файлов
- •Алгоритм работы с файловыми потоками
- •Байтовые файлы (потоки)
- •Обработка исключительных ситуаций при работе с файлами
- •Текстовые файлы
- •Пример преобразования чисел, содержащихся в текстовом файле
- •Консольный ввод-вывод
- •Работа с каталогами и файлами
Виды файлов
Информация, обрабатываемая фалами в С# может быть в виде:
двоичного представления данных(классы BinaryReader, BinaryWriter);
байтов (FileStream);
текста, то есть символов (StreamWriter, StreamReader).
Двоичные и байтовые потоки хранят данные в том же виде, в котором они представлены в оперативной памяти, то есть при обмене с файлом происходит побитовое копирование информации. Двоичные файлы применяются не для просмотра их человеком, а для использования в программах.
Соответственно, различают текстовые, двоичные и байтовые файлы.
Доступ к файлам может быть последовательным, когда очередной элемент можно прочитать (записать) только после аналогичной операции с предыдущим элементом, и произвольным (прямым), при котором выполняется чтение (запись) произвольного элемента по заданному адресу.
Текстовые файлы позволяют выполнять только последовательный доступ, в двоичных и байтовых потоках можно использовать оба метода.
Методы форматированного ввода (ЧТЕНИЯ) значений арифметических типов, в С# не поддерживаются. Для преобразования из символьного в числовое представление используются методы класса Convert или метод Parse.
Форматированный вывод (ЗАПИСЬ) выполняется с помощью метода ToString, результаты выполнения которых передаются в методы текстовых файлов.
Алгоритм работы с файловыми потоками
Использование классов файловых потоков в программе предполагает следующие операции:
Создание потока и связывание его с физическим файлом.
Обмен информацией (чтение-запись).
Закрытие файла.
Каждый файл можно создавать разными способами и открывать в различных режимах (файлы можно открывать для чтения, только для записи или для чтения и записи).
Режимы доступа к файлу содержаться в переменной FileAccess, определенном в пространстве имен System.IO. Константы перечисления приведены в таблице 11.2.
Таблица 11.2- Значения FileAccess
Значение Описание
Read Открыть файл только для чтения
ReadWrite Открыть файл для чтения и записи
Write Открыть файл для записи
Возможные режимы открытия файла определены в переменной FileMode (таблица 11.3)
Таблица 11.3 - Значения FileMode
Значение Описание
Append Открыть файл, если он существует, и установить текущий
указатель в конец файла. Если файл не существует, создать
новый файл
Create Создать новый файл. Если в каталоге уже существует файл с
таким же именем, он будет стерт
CreateNew Создать новый файл. Если в каталоге уже существует файл с
таким же именем, возникает исключение IOException
Open Открыть существующий файл
OpenOrCreate Открыть файл, если он существует. Если нет создать файл с
таким именем
Truncate Открыть существующий файл. После открытия он должен быть
обрезан до нулевой длины
Режим FileMode.Append можно использовать только совместно с доступом типа FileAccess.Write, то есть для файлов, открываемых для записи.