8-Mavzu: berilganlar oqimi. Fayl tizimi bilan ishlash sinflari. Ma’ruza rejasi


Download 19.29 Kb.
bet1/2
Sana18.10.2023
Hajmi19.29 Kb.
#1707593
  1   2
Bog'liq
29-maruza

8-Mavzu: BERILGANLAR OQIMI. FAYL TIZIMI BILAN ISHLASH SINFLARI.

Ma’ruza rejasi:

1. Fayl va FileInfo sinflari

2. Directory va DirectoryInfo sinflari

3. Oqim sinfi

4. Oqim metodlari


Quyidagi sinflar fayllar va kataloglar bilan ishlash uchun .NET platformasida belgilangan.
Fayl va FileInfo - fayllarni yaratish / o'chirish, yozish, nusxalash, fayldan ma'lumotlarni ko'chirish usullarini beradi. Ular, shuningdek, StreamReader va StringWriter ob'ektlarini yaratishda yordam beradi.
Directory va DirectoryInfo - kataloglar va kichik kataloglar bilan ishlash usullari va xususiyatlarini ifodalaydi.
Bu sinflar usullari ishlaydigan ob'ektlar bu fayllar. Fayl ma'lumot manbasi yoki ma'lumot yo'naltiriladigan joy bo'lishi mumkin. Ma'lumotni faylga yo'naltiruvchi oqim fayl I / U deb ataladi. Bu oqim .Net platformasida FileStream klassi bilan ifodalanadi.
Ammo, kiritish -chiqarishning umumiy g'oyasi faqat fayl oqimlarini o'z ichiga olmaydi. Ma'lumotlar oqimi yo'naltiriladigan ob'ekt RAM, bufer yoki tarmoq bo'lishi mumkin. Ularning har biri o'z sinfiga ega va ularning barchasi to'g'ridan -to'g'ri umumiy oqim turidan meros bo'lib o'tadi.
Oqim sinfi
System.IO/ nom maydonida aniqlangan. Mavhum sinf, chunki u barcha turdagi oqimlar uchun asos bo'lib, unda hech qanday a'zo bajarilmaydi. U ixtisoslashgan tarmoqlarda bajarilishi kerak bo'lgan a'zolar to'plamini taqdim etadi. A'zolar uchta asosiy operatsiyaga qaratilgan: o'qish, yozish va qidirish.
Maxsus ip qanday operatsiyalarni bajarishi uning maqsadiga bog'liq. CanRead, CanWrite va CanSeek xususiyatlari orqali ushbu oqim turlaridan qaysi biri qo'llab -quvvatlanishini tekshirishingiz mumkin.
Ixtisoslashgan oqimlarning asosiy turlari:
PipeStream nomlangan quvurlardan o'qish va yozishni qo'llab -quvvatlaydi;
FileStream - faylni o'qish va yozish;
MemoryStream - RAMdagi zaxira omborini ifodalaydi, unga o'qish va yozish imkonini beradi.
BufferedStream - o'qish va yozishni yaxshilash uchun buferlangan oqim (kesh) ni ifodalaydi.
NetworkStream - tarmoq xotirasini ifodalaydi. O'qish va yozishni qo'llab -quvvatlaydi.
Asosiylaridan tashqari, maxsus turlari ham mavjud - CryptoStream va IsolatedStorageFileStream. Birinchisi, kriptografik kodlash oqimini ifodalaydi, ikkinchisi - diskdagi alohida fayllarni saqlashga havola.
Barcha oqimlar bayt-byte ma'lumotlarini o'qiydi va yozadi. Ularning bajarilishi dasturchini operatsion tizimga xos qoidalarni bilishdan va hisobga olishdan ozod qiladi.
Oqim - bu yo'naltirilgan baytlar jamiyati. Oqim baytlar to'plami qayerdan, ya'ni ma'lumotlar manbai haqida hech narsa bilmaydi. Bu o'zgaruvchi yoki asenkron operatsiya natijasi bo'lishi mumkin.
Sinfda CanRead, CanWrite va CanSeek xususiyatlaridan tashqari, Manzil va Uzunlik tasvirlangan. Birinchisi oqimdagi joriy holatini, ikkinchisi oqimning umumiy uzunligini qaytaradi. Ma'lumotlarni qidirish yoki qidirish davrlarini tashkil qilish uchun birgalikda ishlatiladi.
Stream klassi bir nechta foydali usullarni taqdim etadi. Ular har bir bolalar sinfida belgilanadi.
Oqim metodlari:
Yopish - oqimni yopadi, unga biriktirilgan barcha resurslarni chiqaradi. Uni chaqirish Dispose -ga qo'ng'iroq qilish bilan tengdir.
Yuvish - oqimdagi barcha buferlarni asosiy qurilmaga yozishni boshlaydi va ularni yuvadi. Agar u bajarilmasa, bu usul hech narsa qilmaydi.
Qidirish - oqim ichidagi joriy pozitsiyani o'rnatadi.
O'qish / Yozish - oqimdagi baytlar sonini o'qiydi / yozadi, raqam parametr sifatida uzatiladi va o'qilgan baytlar soni bo'yicha pozitsiyani oldinga siljitadi.
FileStream sinfi
Abstrakt oqimlar sinfining avlodi I / U faylining mavhum interfeysini amalga oshiradi. Sinfning asosiy funksiyasi baytni yoki baytlar oqimini yozish yoki o'qish usullari bilan ifodalanadi.
Bir turdagi ob'ektni yaratish uchun uning ko'p versiyalaridan birini ishlatish kerak. Eng sodda - FileStream (String, FileMode) ikkita parametrli konstruktor.
String turining birinchi parametri - bu faylga yo'l (nisbiy yoki mutlaq), ikkinchisi - fayl bilan ishlash rejimi, FileMode ro'yxati. Ro'yxatdan kerakli qiymatni tanlagandan so'ng, dasturchi oqim uchun fayl yaratiladimi yoki allaqachon ochilganligini, ma'lumotni oxiriga qanday qo'shish kerakligini yoki mavjud ma'lumotlarning ustiga yozilishini ko'rsatishi mumkin.
Ushbu konstruktorning kengaytirilgan versiyalari fayl bilan ishlash rejimidan tashqari, kirish rejimini va uni boshqa tarmoqlar bilan almashish rejimini mos ravishda konstruktorning uchinchi va to'rtinchi parametrlari ko'rinishida belgilash imkoniyatini beradi. Bu parametrlar ham FileAccess va FileShare ro'yxatlari).
Misol:
// файл яратиш ва унга яратилган оқимни йўналтириш.
FileStream FirstStream = new FileStream(@"С:\Temp\Settings.ifo", FileMode.Create);
// яратилган оқимни параметрда берилган йўл бўйича файлга жўнатиш
FileStream SecondStream = new FileStream(@"С:\Temp\Settings.ifo", FileMode. Open, FileAccess.ReadWrite);
// яратилган оқимни файлга йўналтириш, оқим файл давомидан байтларни ёзишни бошлайди, умумий рухсат йўқ, бошқа оқимлар ёзишга фақат оқим очиқ бўлгандагина ҳақли.
FileStream TheardStream = new FileStream(@"С:\Temp\Settings.ifo", FileMode.Append, FileAccess.Write, FileShare.None);
Kirish ro'yxatidan foydalanganda, agar oqim fayl yaratishi kerakligi aniqlansa, lekin u allaqachon yaratilgan bo'lsa, bu istisno keltirib chiqaradi. Faylga ma'lumotlarni qo'shish (FileMode.Append), agar fayl mavjud bo'lmasa, istisno bo'ladi va hokazo.
Konstruktordan tashqari, File yoki FileInfo sinflari usullaridan foydalanib, fayllar oqimining misolini yarating.
Misol:
FileStream fs = File.Create(path){}
Yopish usuli yordamida ishlatilgandan keyin oqim yopilishi kerak.
fs.Close();
Yopish usuli - bu destruktor atrofidagi o'rash. Bu fayl oqimi ishlatadigan barcha manbalarni yo'q qiladi.
Oqim yaratish va uni yopish o'rtasida oqim oqimda o'qish, yozish yoki qidirish operatsiyalarini bajaradi. O'qish uchun Read va Readbyte usullari (asenkron qo'ng'iroq uchun ReadAsync va ReadByteAsync), Write va WriteByte yozish uchun (asenkron qo'ng'iroq uchun WriteAsync va WriteByteAsync) mavjud.

Misol:


Download 19.29 Kb.

Do'stlaringiz bilan baham:
  1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling