- •Модуль 1. Мова програмування с# і платформа ms.Net Framework Лекція 7. Робота з файлами
- •7.1. Введення-виведення на консоль
- •7.2. Файлове введення-виведення
- •7.3. Потоки. Абстрактний клас Stream і його нащадки
- •7.4. Класи StreamReader, StreamWriter, StringReader, StringWriter
- •Питання і завдання для самостійної роботи студента
- •12. Лабораторна робота № 6
7.2. Файлове введення-виведення
Основні особливості і правила роботи з пристроями введення/виведення в сучасних мовах високого рівня описуються в рамках класів потоків. Для мов платформи .NET місцем опису загальних властивостей потоків є клас System.IO.Stream.
Простір імен System.IO не підключається до збірки автоматично, тому його потрібно імпортувати.
using System.IO;
Класи цього простору імен дозволяють виконувати введення і виведення даних в потоки (Stream) і файли (File).
У бібліотеці FCL окрім класів File і Stream, що описують файли і потоки, є багато інших класів, пов'язаних з цими поняттями - FileStream, StreamWriter, StreamReader, FileInfo і інші класи.
Статичний клас File надає різні методи для роботи з файлами, основні з яких наведено в таблиці 7.1 (всі методи класу є статичними).
Таблиця 7.1. Методи файлового введення-виведення
Метод |
Призначення |
FileStrеam Create(string path) |
Повертає файл - об'єкт класу FileStream. Вхідний аргумент path задає шлях до файлу. Можна вказати лише ім'я файлу, тоді за замовчанням передбачатиметься поточна директорія. Якщо вказаний файл не існує, то файл буде створений, інакше існуючий файл буде відкритий для запису за умови, що для файлу не заданий атрибут доступу «лише для читання». Новий файл має атрибут доступу «ReadWrite» (читання і запис) і не дозволяє діставати доступ до нього іншим користувачам, поки файл не буде закритий. |
StreamWriter CreateText(string path) |
Створює новий або відкриває для запису існуючий текстовий файл з кодуванням UTF-8. |
FileStream Open(string path, FileMode mode) |
Повертає файл - об'єкт класу FileStream. Метод перегружений, його додаткові аргументи такі самі, як і в методі Create. Існуючий файл буде відкритий відповідно до режиму, заданого параметром FileMode. Можливі значення FileMode: Create - якщо файл вже існує, то буде відкритий, інакше буде створений новий файл; CreateNew- якщо файл не існує, то буде створений, інакше виникне виключення; Open - якщо файл існує, то він буде відкритий, інакше виникне виключення; OpenOrCreate - якщо файл існує, він буде відкритий, інакше буде створений; Truncate - якщо файл існує, він буде відкритий, а його вміст буде видалений, інакше виникне виключення. |
Append |
якщо файл існує, то він відкритий для запису в кінець файлу, якщо файлу не існує, то буде створений новий файл, відкритий для запису. |
StreamReader OpenText(string path) |
відкриває для читання існуючий текстовий файл. Якщо вказаного файлу немає, то виникне виключення |
FileStream OpenRead(string path) |
відкриває існуючий файл для читання, повертаючи об'єкт класу FileSream. Виняткова ситуація виникає, якщо вказаного файлу немає. Метод OpenWrite виконує ті самі дії, але відкриває файл для запису. |
StreamWriter AppendText(string path) |
аналогічний за своєю дією методу CreateText за тим виключенням, що при відкритті існуючого файлу відбувається не переписування його, а додавання нових записів в кінець файлу. |
Методи Copy, Replace, Move, Delete, Exist |
дозволяють копіювати файл, заміняти його вміст, переміщувати, видаляти і визначити, чи існує файл з вказаним іменем. |
Read |
Група методів Read дозволяє відкрити існуючий файл, прочитати його вміст і закрити файл. |
Write |
Група методів Write дозволяє писати у файл, виконуючи операції обернені читанню. |
