📖 13.2 – StreamReader ile Veri Okuma
🎯
Amaç:
Bir .txt dosyasındaki verileri okuyarak program içinde kullanmak.
Kullanıcıya gösterme, listeye ekleme veya analiz etme gibi işlemlerde kullanılır.
Bu iş için StreamReader sınıfı tercih edilir.
🔧
Kullanılan Sınıf:
using System.IO;
📘
Temel Kullanım Şablonu:
using (StreamReader sr = new StreamReader("dosyaadi.txt"))
{
string satir;
while ((satir = sr.ReadLine()) != null)
{
// satır satır okuma işlemi
}
}
🧪
Örnek 1: Sabit Dosyadan Okuma
private void btnOku_Click(object sender, EventArgs e)
{
using (StreamReader sr = new StreamReader("veriler.txt"))
{
string metin = sr.ReadToEnd();
MessageBox.Show(metin);
}
}
✅ Dosya içeriği tamamı bir kerede okunur ve gösterilir.
🧪
Örnek 2: ListBox’a Satır Satır Aktarma
private void btnListele_Click(object sender, EventArgs e)
{
lstNotlar.Items.Clear();
using (StreamReader sr = new StreamReader("notlar.txt"))
{
string satir;
while ((satir = sr.ReadLine()) != null)
{
lstNotlar.Items.Add(satir);
}
}
}
✅ ListBox kontrolünde her satır ayrı bir eleman olarak gösterilir.
🧪
Örnek 3: Satır Sayısını Hesaplama
int satirSayisi = 0;
using (StreamReader sr = new StreamReader("notlar.txt"))
{
while (sr.ReadLine() != null)
{
satirSayisi++;
}
}
MessageBox.Show("Toplam satır sayısı: " + satirSayisi);
🧪
Örnek 4: Tarihi İçeren Satırları Ayırmak
List<string> tarihler = new();
using (StreamReader sr = new StreamReader("notlar.txt"))
{
string satir;
while ((satir = sr.ReadLine()) != null)
{
if (satir.Contains("2025"))
{
tarihler.Add(satir);
}
}
}
🧪
Örnek 5: Dosya İçeriğini Tek Bir TextBox’a Yükleme
private void btnOku_Click(object sender, EventArgs e)
{
txtIcerik.Text = File.ReadAllText("notlar.txt", Encoding.UTF8);
}
⚠️
Dikkat Edilecekler:
- Dosya bulunamazsa FileNotFoundException hatası oluşabilir → 13.3’te çözeceğiz
- Okuma işlemi yaparken dosya başka bir program tarafından açık olmamalıdır
- Türkçe karakterler için yine Encoding.UTF8 önerilir