Назад Вперед Зміст

Загальні відомості

Будь-яка мова програмування повинна мати засоби для зберігання й обробки інформації на зовнішніх носіях. Для цього використовуються спеціальні об'єкти, які називаються файлами.

Файл — це послідовність даних (елементів), записана на зовнішньому носії й така, що має ім’я.

Доцільність використання файлів:

Текстові файли

Текстові файли призначені для зберігання великих обсягів текстової (символьної) інформації.

Текстовий файл — це послідовність символів, об'єднаних у рядки різної довжини.

Кожен рядок закінчується маркером (ознакою) кінця рядка. Маркером є послідовність з двох символів: «повернення каретки» (код 10) та «перехід на новий рядок» (код 13).

Операції з текстовим файлом

Доступний елемент файлу

У будь-який момент програмі доступний лише один елемент (один рядок). Цей елемент називається доступним.

Будь-яка операція (читання, запис) виконується лише з доступним елементом.

Після операції з доступним елементом наступним доступним стає наступний елемент.

Таким чином, можна переглянути всі елементи файлу послідовно.

Текстові файли — файли послідовного доступу

Текстові файли є файлами послідовного доступу, тобто щоб прочитати n-й елемент, необхідно прочитати всі попередні. Неможливо одразу звернутись до n-го елемента.

Існують також файли прямого доступу (не текстові), у яких доступ до елементів виконується за їх номером (як у масивах). Такі файли повинні містити елементи однакової довжини.

Текстові файли в C#

Ввід-вивід у C# виконується за допомогою підсистеми вводу-виводу та класів бібліотеки .NET. Для роботи з цими класами потрібно обов’язково підключити простір імен командою:

using System.IO

Обмін даними здійснюється за допомогою потоків.

Потік — це абстракція, яка приймає та передає дані. Потоком можна зчитувати дані з різних джерел (клавіатура, файл) та записувати в різні приймачі (принтер, екран, файл). Поведінка всіх потоків однакова. Тому класи та методи вводу/виводу можна використовувати з будь-якими пристроями.

Обмін з потоком для підвищення швидкості, зазвичай, відбувається через буфер — тобто фізично зчитується не окремий рядок, а блок (кілька рядків). Для кожного відкритого файлу виділяється окремий буфер.

Класи .NET для роботи з потоками

Для роботи з текстовими файлами ми будемо використовувати два класи: StreamReader і StreamWriter.

Послідовність роботи з файлом

Типова послідовність дій під час роботи з файлом:

Використання програми Блокнот

Якщо для відлагодження вашої програми потрібен текстовий файл, його можна створити будь-яким текстовим редактором, зокрема за допомогою програми Блокнот.

Цією ж програмою можна переглянути вміст створеного текстового файлу.

Про кодування

Програми на C# працюють з текстовими файлами у двобайтовому кодуванні Unicode (UTF-8).

Тому, якщо потрібно використовувати програму Блокнот (яка може створювати файли в різних кодуваннях), це можна зробити двома способами:

  1. Зберегти файл у Блокноті у кодуванні UTF-8 (Юнікод), тоді його можна зчитувати без перекодування.
  2. Зберегти файл у кодуванні ANSI (Windows-1251), а в програмі C# здійснити перекодування під час зчитування.

Примітка: перекодування потрібне лише у випадках, коли у файлі є українські (російські) літери. Якщо ж файл містить лише англійські літери та цифри, перекодування не потрібне.

Назад Вперед Зміст