Fayl bilan ishlash — ma’lumotni dastur yopilgandan keyin ham saqlab qolish usuli. O’zgaruvchilar dastur tugashi bilan yo’qoladi, fayldagi ma’lumot esa diskda qoladi. Dart’da bu vazifa uchun dart:io kutubxonasi ishlatiladi.
dart:io — Dart’ning fayllar va kirish/chiqarish bilan ishlash uchun mo’ljallangan kutubxonasi.
Fileklassi fayl o’qish va yozishni ta’minlaydi.
Kutubxonani ulash
Fayl bilan ishlash uchun dart:io ulanadi:
import 'dart:io';
void main() {
var fayl = File('hisobot.txt');
fayl.writeAsStringSync("UzbekDevs hisoboti\nBall: 95");
print("Fayl yozildi");
}
Fayl yozildi
File('hisobot.txt') — fayl obyektini yaratdi, writeAsStringSync esa unga matn yozdi. Sync — bu amal tugaguncha kutishni bildiradi (sinxron).
Fayldan o’qish
Faylni readAsStringSync bilan butun matn sifatida o’qiymiz:
import 'dart:io';
void main() {
var fayl = File('hisobot.txt');
String tarkib = fayl.readAsStringSync();
print(tarkib);
}
UzbekDevs hisoboti
Ball: 95
readAsStringSync butun fayl tarkibini o’qidi. Qatorma-qator o’qish uchun readAsLinesSync ishlatiladi, u ro’yxat qaytaradi.
Fayl amallari
File klassining asosiy metodlarini jadvalda ko’ramiz:
| Metod | Vazifasi |
|---|---|
writeAsStringSync() |
matn yozadi |
readAsStringSync() |
matn o’qiydi |
readAsLinesSync() |
qatorlar ro’yxati |
existsSync() |
mavjudligini tekshiradi |
deleteSync() |
o’chiradi |
Faylni tekshirish
Fayl bilan ishlashdan oldin uning borligini tekshirish — professional yondashuv:
import 'dart:io';
void main() {
var fayl = File('hisobot.txt');
if (fayl.existsSync()) {
print("Fayl mavjud");
} else {
print("Fayl topilmadi");
}
}
Fayl mavjud
existsSync() fayl bor-yo’qligini tekshiradi. Bu mavjud bo’lmagan faylni o’qishga urinishdan kelib chiqadigan xatoning oldini oladi.
Sinxron va asinxron
Diqqat: yuqoridagi metodlar Sync (sinxron) — ular fayl tugaguncha dasturni kutkazadi. Katta fayllar va ilovalar uchun asinxron (Syncsiz) variantlar afzal, ular dasturni bloklaydi. Asinxron dasturlashni keyingi darslarda batafsil ko’ramiz.
Xulosa
Bu bo’limda dart:io bilan fayl yozish (writeAsStringSync), o’qish (readAsStringSync), tekshirish (existsSync) va sinxron/asinxron farqini ko’rib chiqdik. Fayllar — ma’lumotni doimiy saqlashning asosi. Keyingi darsda JSON bilan ishlashga o’tamiz.