C# Dersleri 34 - StreamReader İle Dosya Okuma

     C# dilinde StreamReader classı, dosyaların içeriğini okumamızı sağlar. Bu class System.IO kütüphanesi içindedir. Bu demek oluyor ki StreamReader classını kullanabilmek için kod yazdığınız classın(form da bir classtır) en üstündeki "using" keywordlerinin arasına "using System.IO;" ifadesini eklemeniz gerekiyor.

     Bir Windows form uygulaması oluşturalım. Bu uygulamada OpenFileDialog sayesinde kullanıcının seçtiği .txt dosyasının içeriğini bir Textbox'a yazdıralım. "OpenFileDialog ne ola ki?" diyorsanız bu makaleye göz atmalısınız.     

private void btnSelectFile_Click(object sender, EventArgs e)
{
    OpenFileDialog ofd = new OpenFileDialog();
    if (ofd.ShowDialog() == DialogResult.OK)
    {
        string filePath = ofd.FileName;
        StreamReader sr = new StreamReader(File.OpenRead(filePath));
        txtNote.Text = sr.ReadToEnd();
        sr.Dispose();
    }
}

     Formda bir Button ve bir Textbox var. Kullanıcı Button'a tıkladığında OpenFileDialog açılacak ve kullanıcının seçtiği dosyanın içeriği txtNote isimli Textbox'a yazdırılacak. Öncelikle OpenFileDialog'da seçilen dosyanın dosya yolunu filePath isimli string değişkene atıyoruz. StreamReader nesnesi oluştururken, bir adet stream tanımlamak gerekiyor. File classını ve bu dediğimin ne demek olduğunu başka bir makalede ayrıntılı konuşacağız ancak şimdilik şu bilgi yeterli; "File.OpenRead(filePath)" kod cümlesi, verdiğimiz dosya yolu için bir stream oluşturmuş oluyor. Daha sonra StreamReader classının ReadToEnd() methodu sayesinde dosyanın sonuna kadar okumuş oluyor ve Textbox'a atama yapıyoruz.

     StreamReader classına ait Dispose() methodu, daha önce oluşturulan stream'in kapatılmasını sağlar. Bu kodu kullanmasak da uygulamamız sorunsuz çalışır ancak uygulama çalışırken .txt dosyasında değişiklik yapmaya kalkarsanız "Başka bir program tarafından kullanılıyor" hatası alırsınız. Dispose methodu bu problemin önüne geçiyor.

     Projeyi buradan indirebilirsiniz.

YORUMLAR
Email Adresi *
Görüntülenecek İsim *
Yorum *
Paylaş
  • f