- •1 Основные сведения о C#
- •1.1 Особенности языка
- •1.2 Типы данных
- •1.3 Переменные
- •1.4 Константы (литералы)
- •1.5 Операторы, используемые при построении выражений
- •1.6 Класс Object
- •1.7 Класс Math
- •1.8 Класс Convert
- •1.9 Пространство имён
- •1.10 Типы, допускающие значение null
- •2 Операторы и конструкции С#
- •2.1 Операторы присваивания
- •2.2 Приведение типов
- •2.3 Операторы инкремента и декремента
- •2.4 Операторные скобки {}
- •2.5 Условный оператор if
- •2.6 Логические операторы «И» и «ИЛИ»
- •2.7 Условный оператор ? :
- •2.8 Оператор выбора switch и оператор прерывания break
- •2.9 Оператор цикла for
- •2.10 Оператор цикла while
- •2.11 Оператор цикла do...while
- •2.12 Операторы прерываний break (для циклов) и continue
- •2.13 Оператор new
- •2.14 Массивы
- •2.14.1 Одномерные массивы
- •2.14.2 Многомерные массивы
- •2.14.3 Ступенчатые массивы
- •2.14.4 Работа с массивами как с объектами
- •2.15 Оператор цикла foreach
- •2.16 Строки
- •2.17 Перечисления
- •2.18 Обработка исключений
- •2.18.1 Класс Exception и стандартные исключения
- •2.18.2 Блок try...catch
- •2.18.3 Блок try...finally
- •2.18.4 Блок try...catch...finally
- •2.18.5 Оператор throw
- •3 Классы. Основные понятия
- •3.1 Общая схема
- •3.2 Спецификаторы доступа
- •3.3 Поля
- •3.4 Создание объекта и доступ к его членам
- •3.5 Методы
- •3.5.1 Перегрузка методов
- •3.5.2 Новое в версии C# 4.0
- •3.6 Конструкторы
- •3.7 Деструкторы
- •3.8 Инициализаторы объектов
- •3.9 Свойства
- •3.10 Индексаторы
- •4 Классы. Расширенное использование
- •4.1 Статические классы и члены классов
- •4.2 Наследование
- •4.2.1 Наследование и конструкторы
- •4.2.2 Переопределение членов класса
- •4.3 Полиморфизм
- •4.3.1 Виртуальные методы
- •4.3.2 Абстрактные классы и члены классов
- •4.3.3 Операторы as и is
- •4.3.4 Модификатор sealed
- •4.4 Перегрузка операторов
- •5 Интерфейсы
- •6 Делегаты, лямбда-выражения и события
- •6.1 Делегаты
- •6.2 Анонимные методы и лямбда-выражения
- •6.3 События
- •7 Универсальные типы
- •7.1 Общая схема
- •7.2 Ограничения по параметрам типа
- •7.2.1 Ограничение на базовый класс
- •7.2.2 Ограничение на интерфейс
- •7.2.3 Ограничение на конструктор
- •7.2.4 Ограничения ссылочного типа и типа значения
- •7.3 Параметры типы в методах
- •7.4 Некоторые универсальные типы С#
- •7.4.1 Класс Array
- •7.4.2 Класс List<T>
- •7.4.3 Класс LinkedList<T>
- •7.4.4 Класс Queue<T>
- •7.4.5 Класс Stack<T>
- •7.4.6 Классы SortedSet<T> и HashSet<T>
- •7.4.7 Классы Dictionary<TKey, TValue> и SortedDictionary<TKey, TValue>
- •8 Работа с файлами
- •8.1 Класс File
- •8.2 Работа с файлами как с потоками
- •8.2.1 Класс FileStream
- •8.2.2 Класс StreamReader
- •8.2.3 Класс StreamWriter
- •8.2.4 Класс BinaryReader
- •8.2.5 Класс BinaryWriter
8 Работа с файлами
Для работы с файлами C# предоставляет набор классов, обеспечивающих, как операции манипулирования файлами (например, копирование, удаление, открытие и т.д.), так и операции работы с данными, содержащимися в файле (чтение, запись).
8.1 Класс File
Класс File предоставляет статические методы для создания, копирования, удаления, перемещения и открытия файлов, а также помогает при создании объек-
тов FileStream.
Класс расположен в пространстве имён System.IO.
По умолчанию всем пользователям предоставляется полный доступ к новым файлам с правом на чтение и запись. Однако для настройки некоторых методов класса могут использоваться перечисления, указанный в таблице 8.1.
Таблица 8.1 – Перечисления, используемые для настройки методов класса File
Наименование |
Назначение |
|
Значения |
FileMode |
Определяет |
|
CreateNew – создание нового файла. Если файл |
|
режим работы |
|
существует, то вызывается исключение; |
|
с файлом |
|
Create – создание нового файла. Если файл |
|
|
|
существует, то он перезаписывается; |
|
|
Open – открытие файла. Если файл не суще- |
|
|
|
|
ствует, то вызывается исключение; |
|
|
OpenOrCreate – открытие файла. Если файл не |
|
|
|
|
существует, то создаётся новый файл; |
|
|
|
Truncate – открытие файла и удаление из него |
|
|
|
всех данных; |
|
|
|
Append – открытие файла на дозапись. |
FileAccess |
Определяет |
|
Read – открытие файла для чтения; |
|
доступные |
|
Write – открытие файла для записи; |
|
операции для |
|
ReadWrite – открытие файла для чтения и за- |
|
файла |
|
писи. |
FileShare |
Определяет тип |
|
None – запрет доступа; |
|
совместного |
|
Read – разрешает доступ к файлу для чтения; |
|
доступа к |
|
Write – разрешает доступ к файлу для записи; |
|
файлу |
|
ReadWrite – разрешает доступ к файлу для |
|
|
|
чтения и для записи; |
|
|
|
Delete – разрешает доступ к файлу для удале- |
|
|
|
ния. |
125
Некоторые члены класса File приведены в таблице 8.2.
Таблица 8.2 – Некоторые члены класса File
Наименование |
Описание |
|
Copy |
Копирует файл sourceFileName в |
|
(string sourceFileName, |
destFileName |
|
string destFileName) |
|
|
Delete |
Удаляет файл path |
|
(string path) |
|
|
Exists |
Возвращает true, если файл path существует, и |
|
(string path) |
false в противном случае |
|
|
||
Move |
Перемещает или переименовывает файл |
|
(string sourceFileName, |
sourceFileName в destFileName |
|
string destFileName) |
|
|
|
|
|
Replace |
Заменяет содержимое файла |
|
(string sourceFileName, |
destinationFileName на содержимое файла |
|
string |
sourceFileName создавая резервную копию |
|
destinationFileName, |
||
destinationBackupFileName. Если копию |
||
string |
||
создавать не требуется, то вместо третьего |
||
destinationBackupFileName) |
||
параметра указывается null |
||
Open |
Открывает файл path с требуемыми |
|
(string path, |
параметрами mode, access, share. Возвращает |
|
FileMode mode |
||
объект класса FileStream для работы с |
||
[,FileAccess access |
||
файлом |
||
[,FileShare share]]) |
||
|
||
|
|
|
Create |
Создает новый или перезаписывает |
|
(string path) |
существующий файл path. Возвращает объект |
|
|
класса FileStream для работы с файлом |
|
CreateText |
Создает новый или перезаписывает |
|
(string path) |
существующий файл path в кодировке UTF-8. |
|
|
Возвращает объект класса StreamWriter для |
|
|
записи в файл |
|
OpenRead |
Открывает файл path для чтения. Возвращает |
|
(string path) |
объект класса FileStream для чтения из файла |
|
|
||
OpenWrite |
Открывает файл path для записи. Возвращает |
|
(string path) |
объект класса FileStream для записи в файл |
|
|
||
OpenText |
Открывает файл path для чтения. Возвращает |
|
(string path) |
объект класса StreamReader, позволяющий |
|
|
||
|
читать данные из файла с текстом в кодировке |
|
|
UTF-8 |
|
AppendText |
Открывает файл path для дозаписи. Возвращает |
|
(string path) |
объект класса StreamWriter, позволяющий |
|
|
||
|
добавлять в существующий файл текст в |
|
|
кодировке UTF-8 |
126