using System;
using System.IO;
class RandomAccessFileExample
{
static void Main()
{
string filePath = "randomAccess.dat";
// Открываем файл для записи и записи данных
using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate))
{
using (BinaryWriter writer = new BinaryWriter(fs))
{
// Запись чисел по определенным позициям
writer.Seek(0, SeekOrigin.Begin); // Начало файла
writer.Write(10); // Записываем число 10
writer.Seek(4, SeekOrigin.Begin); // Сдвиг на 4 байта
writer.Write(20); // Записываем число 20
writer.Seek(8, SeekOrigin.Begin); // Сдвиг на 8 байт
writer.Write(30); // Записываем число 30
}
}
Console.WriteLine("Данные записаны в файл.");
// Чтение данных из определённых позиций
using (FileStream fs = new FileStream(filePath, FileMode.Open))
{
using (BinaryReader reader = new BinaryReader(fs))
{
// Чтение чисел с указанных позиций
reader.BaseStream.Seek(0, SeekOrigin.Begin);
int num1 = reader.ReadInt32(); // Чтение числа 10
reader.BaseStream.Seek(4, SeekOrigin.Begin);
int num2 = reader.ReadInt32(); // Чтение числа 20
reader.BaseStream.Seek(8, SeekOrigin.Begin);
int num3 = reader.ReadInt32(); // Чтение числа 30
Console.WriteLine("Число на позиции 0: {num1}");
Console.WriteLine("Число на позиции 4: {num2}");
Console.WriteLine("Число на позиции 8: {num3}");
}
}
}
}