Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЕК. Алгоритмізація. Конспект лекцій.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1.89 Mб
Скачать
    1. Файли: текстові, бінарні

Питання 2. Операції над бінарними файлами

Відкриття файлу

Перш ніж почати роботу з файлами необхідно використати простір імен System.IO:

using System.IO;

1. Процедура відкриття файлу здійснюється наступним чином:

FileStream fs = new FileStream("test.data", FileMode.CreateNew);

Перший параметр – ім’я файлу, другий параметр – режим, у якому відкривається файл.

Перелік доступних режимів (FileMode):

Append;

Create;

CreateNew;

Open;

OpenOrCreate;

Truncate.

2. Створення пристрою для доступу:

BinaryWriter w = new BinaryWriter(fs);

3. Виконання операцій по запису інформації до файлу:

for (int i = 0; i < 11; i++)

{

w.Write((int)i);

}

4. Закриття файлу:

w.Close();

fs.Close();

Програма, яка записує значення до файлу і зчитує їх

using System;

using System.IO;

namespace Simple

{

class App

{

public static void Main()

{

string fname = "test.data";

if (File.Exists(fname))

{

File.Delete(fname);

}

// Запис даних

FileStream fs = new FileStream(fname, FileMode.CreateNew);

BinaryWriter w = new BinaryWriter(fs);

for (int i = 0; i < 11; i++)

{

w.Write((int)i); // Вказуємо тип даних

}

w.Close();

fs.Close();

// Зчитування даних

fs = new FileStream(fname, FileMode.Open, FileAccess.Read);

BinaryReader r = new BinaryReader(fs);

for (int i = 0; i < 11; i++)

{

Console.WriteLine(r.ReadInt32()); // Вказуємо тип даних

}

r.Close();

fs.Close();

Console.ReadKey(); // Чекаємо натискання клавіші

}

}

}

Вміст файлу

Доступ до довільних елементів файлу

Якщо необхідно зчитувати не всі елементи файлу, а перейти до елементу з певним номером, можна використати метод Seek потоку:

fs.Seek(sizeof(Int32)*8, SeekOrigin.Begin);

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

Зчитування і запис текстового файлу здійснюється по рядкам.

Приклад запису інформації до текстового файлу

using System;

using System.IO;

public class TextToFile

{

private const string FILE_NAME = "MyFile.txt";

public static void Main(String[] args)

{

if (File.Exists(FILE_NAME))

{

Console.WriteLine("{0} already exists.", FILE_NAME);

return;

}

using (StreamWriter sw = File.CreateText(FILE_NAME))

{

sw.WriteLine("This is my file.");

sw.WriteLine("I can write ints {0} or floats {1}, and so on.",

1, 4.2);

sw.Close();

}

}

}

Приклад читання інформації із текстового файлу

using System;

using System.IO;

public class TextFromFile

{

private const string FILE_NAME = "MyFile.txt";

public static void Main(String[] args)

{

if (!File.Exists(FILE_NAME))

{

Console.WriteLine("{0} does not exist.", FILE_NAME);

return;

}

using (StreamReader sr = File.OpenText(FILE_NAME))

{

String input;

while ((input=sr.ReadLine())!=null)

{

Console.WriteLine(input);

}

Console.WriteLine ("The end of the stream has been reached.");

sr.Close();

}

}