10. SınıfBilişim Teknolojileri
Dosya İşlemleri ve Serileştirme — Çalışma Sayfası
Kazanımlar, önemli noktalar ve sık yapılan hatalar tek sayfada.
Bu konuda öğrenecekleriniz
- StreamWriter ve StreamReader sınıflarını kullanarak metin dosyası oluşturur, satır satır yazar ve okur
- using bloğuyla dosya kaynağının kapandığını garanti ederek kaynak sızıntısını önler
- Dosya varlığını ve klasör yolunu denetleyerek dosya bulunmadığında oluşan hatayı yönetir
- Karakter kodlamasının dosya boyutunu nasıl etkilediğini açıklar ve UTF-8 seçiminin önemini belirtir
- Nesneleri JSON biçimine serileştirip geri yükleyerek kalıcı veri saklama çözümü kurar
Önemli noktalar
- StreamWriter ile yazma, StreamReader ile okuma yapılır; sınıflar karıştırılmamalıdır.
- Write satır sonu eklemez, WriteLine her çağrıda satır sonu ekler.
- using bloğu dosya kaynağının blok sonunda kapatılmasını, hata olsa bile, garanti eder.
- Dosya varlığı File.Exists ile denetlenmeden okuma yapılmamalıdır.
- Yazma ve okuma işlemlerinde aynı karakter kodlaması seçilmelidir.
- Çok baytlık kodlamada Türkçe karakterler iki bayt yer kaplar ve dosya boyutunu büyütür.
- Nesneyi metne çevirmek serileştirme, metni nesneye dönüştürmek geri yüklemedir.
- JSON biçimi alan adlarını açıkça yazdığı için veri içeriği denetlenebilir olur.
Formüller ve kurallar
- dosya boyutu (bayt) = satır sayısı × ortalama satır uzunluğu
- çok baytlık kodlama boyutu = tek baytlık karakter sayısı × 1 + Türkçe karakter sayısı × 2
- tahmini satır sayısı = dosya boyutu (bayt) / ortalama satır uzunluğu (bayt)
- geçerli kayıt sayısı = toplam kayıt sayısı − hatalı kayıt sayısı
- kullanılabilir kayıt oranı = geçerli kayıt sayısı / toplam kayıt sayısı
- kayıt alan sayısı = 8 (ad) + 1 (ayraç) + 6 (numara) = 15 karakter
- toplam alan sayısı = dosya sayısı × dosya başına alan sayısı
- kullanılmayan tampon = tampon boyutu − okunan veri boyutu
Sık yapılan hatalar
- Dosyayı kapatmamak: Kapatılmayan dosya işletim sisteminde kilitli kalır, silinemez ve yeniden açılamaz. using bloğu bu hatayı yapısal olarak engeller.
- Dosya varlığını denetlememek: Olmayan bir dosyayı okumaya çalışmak programı durdurur. File.Exists ile denetim yapılmadan okuma yapılmamalıdır.
- Karakter kodlaması uyuşmazlığı: Yazarken tek baytlık, okurken çok baytlık kodlama seçilirse Türkçe karakterler bozuk görünür. İki işlemde de aynı kodlama seçilmelidir.
- Write ile yazıp ReadLine ile okumak: Write satır sonu eklemediği için kayıtlar tek satırda birleşir ve okuma bozulur. WriteLine kullanılmalıdır.
- Satır sayısını elle yazmak: WriteLine satır sonunu kendisi ekler; ayrıca satır sonu karakteri eklemek kaydın sonuna gereksiz karakter katar.
- Serileştirilemeyen alan bırakmak: Sınıftaki her alan serileştirilebilir olmalıdır; desteklenmeyen bir tür geri yüklemeyi bozar ve hata verir.
Hızlı tekrar ipuçları
- Dosya adı sabit bir yol değişkeninde tutun; aynı yolu üç ayrı yerde yazmak yazım hatası riskini artırır.
- Hata mesajına dosya yolunu ekleyin; sorunu bulmak saatlerce sürebilir.
- Türkçe karakter içeren dosyalarda utf-8 seçin ve okuma tarafında aynı seçimi yapın.
- Kayıtları okurken o satırı işleyip bir sonrakine geçin; tüm satırları bir listede toplamak belleği şişirir.
- Serileştirme sonrası dosyayı bir metin düzenleyicide açıp alan adlarını gözle doğrulayın.
- Kendi programınıza yazdığı veriyi geri okutup karşılaştıran bir deneme satırı eklemek, hata ayıklamada en hızlı yoldur.
Kendini dene
Bu sayfayı okuduktan sonra konu anlatımını tekrar oku ve kendi cümlelerinle özetle.