Mavzu: Fayl tizmi bilan ishlash reja: Kirish. • Fayllar bilan ishlash. Sinf File va FileInfo Asosiy qism


Ikki tomonlama ketma-ketlik. BinaryFormatter



Download 25,88 Kb.
bet5/5
Sana05.07.2022
Hajmi25,88 Kb.
#740862
1   2   3   4   5
Bog'liq
kurs ishi (2)

Ikki tomonlama ketma-ketlik. BinaryFormatter
Bunday sinf meros bo'lsa, Serializable xususiyati avtomatik ravishda meros emas, deb yodda tutish lozim. Va agar biz lotin sinfini ham ketma-ket bo'lishini istasak, unda yana unga atribut qo'llaymiz:
[Serializable]
class Worker : Person
Ikkilik ketma-ketlik uchun BinaryFormatter klassi ishlatiladi:
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace Serialization
[Serializable]
class Person
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
Name = name;
Age = age;
class Program
static void Main(string[] args)
// seriallashtirish uchun ob'ekt
Person person = new Person("Tom", 29);
Console.WriteLine ("yaratilgan ob'ekt");
// BinaryFormatter ob'ektini yaratish
BinaryFormatter formatter = new BinaryFormatter();
// biz seriallashtirilgan ob'ektni yozib oladigan oqimni olamiz
using (FileStream fs = new FileStream("people.dat", FileMode.OpenOrCreate))
formatter.Serialize(fs, person);
Console.WriteLine ("ob'ekt SERIALIZED");
// odamlar faylidan Deserializatsiya.dat
using (FileStream fs = new FileStream("people.dat", FileMode.OpenOrCreate))
Person newPerson = (Person)formatter.Deserialize(fs);
Console.Yozma ("ob'ekt deserialized");
Console.WriteLine ($"nomi: {newPerson.Name} - - - yosh: {newPerson.Age}");
Console.ReadLine();
BinaryFormatter klassi tizim nomlari maydonida aniqlanganligi sababli.Runtime.Serialization.Formatters.Ikkilik, keyin boshida uni ulang.
Serializable xususiyati bilan e'lon qilingan oddiy odam sinfimiz bor. Buning natijasida uning ob'ektlari ketma-ketlik uchun mavjud bo'ladi.
Keyin BinaryFormatter ob'ektini yarating: BinaryFormatter formatter = yangi BinaryFormatter ();
Keyin ketma-ketlik va ketma-ketlikni amalga oshiring. Har ikkala operatsiya uchun ham ma'lumotlarni saqlash yoki o'qish uchun oqim kerak. Ushbu oqim filestream obyekti bo'lib, u bizga kerak bo'lgan shaxs ob'ektini odamlar fayliga yozadi.dat.
Bir formatter usuli bilan ketma-ketlik.Serialize (FS, person) inson obyekti haqidagi barcha ma'lumotlarni odamlar fayliga qo'shadi.dat.
Deserializatsiya vaqtida biz deserialize funktsiyasi bilan qaytarilgan ob'ektni shaxs turiga aylantirishimiz kerak: (shaxs)formatter.Deserialize(fs).
Ko'rib turganingizdek, ketma-ketlik, BinaryWriter/BinaryReader sinfining bir guruhidan foydalanib, moslamalarni ikkilik shaklda saqlash jarayonini sezilarli darajada osonlashtiradi.

Biz faqat bir shaxs ob'ektini oldi-da, lekin shunga o'xshash ob'ektlar bir qator foydalanishingiz mumkin teng tarzda, ro'yxati yoki Serializable xususiyati amal qaysi boshqa to'plam. Keling, qator misolini ko'rib chiqaylik:


Person person1 = new Person("Tom", 29);
Person person2 = new Person("Bill", 25);
// serializatsiya uchun qator
Person[] people = new Person[] { person1, person2 };
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream fs = new FileStream("people.dat", FileMode.OpenOrCreate))
// odamlar butun qator serialize
formatter.Serialize(fs, people);
Console.WriteLine ("ob'ekt SERIALIZED");
// Deserializatsiya
using (FileStream fs = new FileStream("people.dat", FileMode.OpenOrCreate))
Person[] deserilizePeople = (Person[])formatter.Deserialize(fs);
foreach (Person p in deserilizePeople)
Console.WriteLine ($"nomi: {p.Name} - - - yosh: {P. Age}");

Xulosa
Men bu kurs ishini bajarish orqali Fayl tizmi bilan ishlash, undagi imkoniyatlar va xususiyatlarini o'rgandim. Fayl tizmi bilan ishlash va uning toifalari xaqida ko'plab malumotlarga ega bo'ldim. Bu kurs ishini yozish davomida shularni o’rganib chiqdim:
Fayllar bilan ishlash. Sinf File va FileInfo
FileStream. Faylni o’qish va yozish
Matin Fayllarini o’qish va yozish. StreamReader va StreamWriter
Ikkilik fayllar. BinariyWriter va BinaryReader
Ikki tomonlama ketma-ketlik. BinaryFormatter;
Bu kurs ishi menda katta tasurot va Fayl tizmi bilan ishlash haqida ko'nikma paydo bo'ldi.



Download 25,88 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish