Структурированный тип данных – множество. Операции над множествами
Понятие
Операции над множествами
Операции над множествами
Комбинированный тип данных – запись. Файлы последовательного доступа. Файлы прямого доступа.
Работа с файлами и каталогами
Работа с дисками
Свойства метода GetDrives
Пример:
Создание файла
Запись в файл
Запись в файл
Удаление файла
Использование потоков
Режимы открытия FileMode
Режим доступа FileAccess
Чтение потока из файла
Чтение потока из файла
Запись в файл
Запись в файл
Запись в файл
Бинарные файлы. BinaryWriter и BinaryReader
Бинарные файлы. BinaryWriter и BinaryReader
Бинарные файлы. BinaryWriter и BinaryReader
Получение информации о файле
Перемещение файла
Копирование файла
Работа с папками
Получение информации о папке
Перемещение папки
Получение списка файлов и вложенных папок
336.21K
Category: programmingprogramming

d21092e7acb144218abb576bb411ca55

1. Структурированный тип данных – множество. Операции над множествами

Лекция 9

2. Понятие

Множество C# — это структура данных,
представляющая собой не организованный
набор уникальных элементов одного типа.
Пример:

3. Операции над множествами

1. Add
— добавление элемента. Если такой
элемент уже присутствует, то он не будет
добавлен.
2. Remove

удаление
элемента
из
множества.
3. Union — объединение множеств. Создается
новое множество, включающее в себя все
элементы из множества А и множества В.
Если
элемент
содержится
в
обоих
множествах, он будет добавлен однократно.
4. Difference — разность множеств. Создается
новое множество, включающее в себя все
элементы множества А, которые не входят в
множество В.

4. Операции над множествами

Intersection — пересечение множеств.
Создается новое множество, включающее в
себя все элементы входящие одновременно
и в множество А, и в множество В.
6. Subset — проверка на подмножество.
Чтобы быть подмножеством, все элементы
множества А должны содержаться в
множестве В. Тогда множество А является
подмножеством множества В.
5.

5. Комбинированный тип данных – запись. Файлы последовательного доступа. Файлы прямого доступа.

Лекция 10

6. Работа с файлами и каталогами

Примеры операций:
1. запись текста из файла или чтение
2. удаление файлов или каталогов
3. создание текстового редактора и т. д.
Фреймворк.NET
позволяет
выполнять
манипуляции
файлами
и
каталогами,
которые
содержаться
в
пространстве
имен System.IO.
Классы,
расположенные
в
этом
пространстве имен (такие как Stream,
StreamWriter, FileStream и др.), позволяют
управлять файловым вводом-выводом.

7. Работа с дисками

Для представления диска в пространстве
имен System.IO имеется класс DriveInfo.
Этот
класс
имеет
статический
метод GetDrives, который возвращает имена
всех логических дисков компьютера.

8. Свойства метода GetDrives

Свойства метода GetDrives
AvailableFreeSpace: указывает на объем
доступного свободного места на диске в
байтах
2. DriveFormat:
получает
имя
файловой
системы
3. DriveType: представляет тип диска
4. IsReady: готов ли диск (например, DVDдиск может быть не вставлен в дисковод)
5. Name: получает имя диска
6. TotalFreeSpace: получает общий объем
свободного места на диске в байтах
7. TotalSize: общий размер диска в байтах
8. VolumeLabel: получает или устанавливает
метку тома
1.

9. Пример:

10. Создание файла

Для создания пустого файла, в
классе File есть метод Create(). Он
принимает один аргумент – путь. Если
файл с таким именем уже существует,
он будет переписан на новый пустой
файл.
Пример создания пустого
текстового файла new_file.txt на
диске D:

11. Запись в файл

Метод WriteAllText() создает новый
файл
(если
такого
нет),
либо
открывает существующий и записывает
текст, заменяя всё, что было в файле:

12. Запись в файл

Метод AppendAllText() работает,
как
и
метод
WriteAllText()
за
исключением того, что новый текст
дописывается в конец файла, а не
переписывает всё что было в файле:

13. Удаление файла

Метод Delete() удаляет файл по
указанному пути:

14. Использование потоков

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

15. Режимы открытия FileMode

Append – открывает файл (если существует) и
переводит указатель в конец файла (данные будут
дописываться в конец), или создает новый файл.
Данный режим возможен только при режиме доступа
FileAccess.Write.
Create - создает новый файл (если существует –
заменяет)
CreateNew – создает новый файл (если существует –
генерируется исключение)
Open - открывает файл (если не существует –
генерируется исключение)
OpenOrCreate – открывает файл, либо создает
новый, если его не существует
Truncate – открывает файл, но все данные внутри
файла затирает (если файла не существует –
генерируется исключение)

16. Режим доступа FileAccess

Режим доступа FileAccess
Read – открытие файла только на
чтение.
При
попытке
записи
генерируется исключение.
Write - открытие файла только на
запись.
При
попытке
чтения
генерируется
исключение.
ReadWrite - открытие файла на чтение
и запись.

17. Чтение потока из файла

StreamReader - чтение данных из
потока.
В нем реализовано множество методов
для удобного считывания данных.
Метод ReadToEnd() считывает все данные
из файла.
ReadLine() – считывает одну строку
(указатель потока при этом переходит на
новую строку, и при следующем вызове
метода будет считана следующая строка).
Свойство
EndOfStream
указывает,
находится ли текущая позиция в потоке в
конце потока (достигнут ли конец файла).
Возвращает true или false.

18. Чтение потока из файла

Пример вывода содержимого файла на
экран:

19. Запись в файл

Для
записи
данных
в
поток
используется класс StreamWriter.
Метод WriteLine() записывает в
файл построчно (то же самое, что и
простая запись с помощью Write(),
только в конце добавляется новая
строка).
Нужно всегда помнить, что после
работы с потоком, его нужно закрыть
(освободить ресурсы), использовав
метод Close().

20. Запись в файл

Пример записи в файл:
Кодировка,
в
которой
будут
считываться/записываться
данные
указывается
при
создании
StreamReader/StreamWriter:

21. Запись в файл

При
использовании
StreamReader
и
StreamWriter можно не создавать отдельно
файловый поток FileStream, а сделать это
сразу
при
создании
StreamReader/StreamWriter:

22. Бинарные файлы. BinaryWriter и BinaryReader

Для
работы
с
бинарными
файлами
предназначена пара классов BinaryWriter и
BinaryReader. Эти классы позволяют читать и
записывать данные в двоичном формате.
Основные метода класса BinaryWriter:
Close(): закрывает поток и освобождает
ресурсы
Flush(): очищает буфер, дописывая из
него оставшиеся данные в файл
Seek(): устанавливает позицию в потоке
Write(): записывает данные в поток

23. Бинарные файлы. BinaryWriter и BinaryReader

Основные метода класса BinaryReader
1. Close(): закрывает поток и освобождает
ресурсы
2. ReadBoolean(): считывает значение bool и
перемещает указатель на один байт
3. ReadByte():
считывает один байт и
перемещает указатель на один байт
4. ReadChar(): считывает значение char, то
есть
один
символ,
и
перемещает
указатель на столько байтов, сколько
занимает символ в текущей кодировке
5. ReadDecimal():
считывает
значение
decimal и перемещает указатель на 16
байт

24. Бинарные файлы. BinaryWriter и BinaryReader

ReadDouble(): считывает значение double
и перемещает указатель на 8 байт
7. ReadInt16(): считывает значение short и
перемещает указатель на 2 байта
8. ReadInt32(): считывает значение int и
перемещает указатель на 4 байта
9. ReadInt64(): считывает значение long и
перемещает указатель на 8 байт
10. ReadSingle(): считывает значение float и
перемещает указатель на 4 байта
11. ReadString(): считывает значение string.
Каждая строка предваряется значением
длины строки, которое представляет 7битное целое число
6.

25. Получение информации о файле

Удаление файла

26. Перемещение файла

27. Копирование файла

28. Работа с папками

Создание папки:
С помощью статического
метода CreateDirectory() класса Directory:
1.
Удаление папки:
Для
удаления
папок
метод Delete():
2.
используется
Если папка не пустая, необходимо указать
параметр рекурсивного удаления - true:

29. Получение информации о папке

С помощью метода dirInfo

30. Перемещение папки

С помощью метода Move.to

31. Получение списка файлов и вложенных папок

English     Русский Rules