30 Kasım 2013 Cumartesi

C# Temel Metin Dosyası İşlemleri (Text Belgesine Yazma ve Okuma)

Micssoft NET ile programcıların hizmetine sunulan hazır sınıf kütuphaneleri sayesinde diğer dillerde programcıları uğraştıran birçok konu üzerinde program yazmak artık bir zevk haline geldi. Girdi/Çıktı (I/O) işlemleri de böyle zevkli hale gelen konulardan biridir. Biz bu yazımıda metin dosyası (text file) ile ilgli temel birkaç işlem üzerinde duracağız. 

Metin dosylarını oluşturmak, yazmak, içeriklerini okumak için System isimuzayında bulunan Text alt uzayındaki sınıfları kullanıyoruz. Aşağıdaki programımızda 3 tane metodumuz var. Birincisi, DosyayaYaz() metin dosyasını oluşturup bu dosya ya birkaç şey yazdırıyor. Bu metod önce StreamWriter sınıfından dosya isimli bir obje oluşturuyor. Daha sonra StreamWriter sınıfında bulunan WriteLine() metodu ile 2 satır yazıyoruz dosyamıza. Son olarak dosyamızı dosya.Close() ile kapatıyoruz.
İkinci metodumuz, DosyadanOku(), ise bir metin dosyasının içeriğini ekrana yazdırıyor. Bunun için önce StreamReader sınıfına ait dosyaOku nesnemizi oluşturuyoruz. Sonra dosyamızı dosyaOku=File.OpenText(dosyaIsmi); komutu ile açıyoruz. Dosyamızın ilk satırında bulunan yazıyı "yazi" isimli değişkenimize yazi=dosyaOku.ReadLine(); ile aktarıyoruz. Bundan sonra ise eğer okuduğumuz satırda yazı varsa (yani dosyanın sonu değilse) o satırı ekrana yazdırıp bir sonraki satırı okuyoruz. Okuma ve ekrana yazdırma işlemlerini dosyanın sonuna kadar (yada okuduğumu satırın içeriğinin null olana kadar ) devam ediyoruz. Son olarak ise dosyaOku.Close() ile dosyamızı kapatıyoruz.
Üçüncü ve son fonksiyonumuz ise metin dosyamızın sonuna birşeyler ekleyen DosyayaEkle()'dir. Yine StreamWriter sınıfından dosya isimini verdğimiz bir nesne oluşturuyoruz. Dosyamızı File.AppenText() metodu ile açıyoruz ki bu metod sayesinde dosyanın sonuna istedğiğmiz veriyi kolayca ekleyebiliriz. dosya.WriteLine("Bu da en son Append ile eklediğimiz satır..."); komutu ile tırnaklar arasında metni dosyamızın sonuna ekliyoruz. Her zamanki gibi açtığımız dosyayı işimiz bitince hemen dosya.Close(); ile kapatıyoruz.
Aşağıdaki programı sisteminizde derleyip çalıştırmanızı ve hatta kod ile oynayıp değişiklikleri incelemenizde yarar olduğunu düşünüyorum.

using System;
using System.IO;
using System.Text;

class TextFile
{
    public static void Main(string[] args)
       {
           // Metin dosyamıza birşeyler yazan fonksiyon..
           DosyayaYaz();

          // Metin dosyamızı okuyan ve ekrana yazan fonksiyon
          DosyadanOku("c:\\Deneme.txt"); 

          // Metin dosyamızın sonuna birşeyler ekleyen fonksiyon
         DosyayaEkle("c:\\Deneme.txt"); 

        Console.ReadLine();
}

    static void DosyayaYaz()
      {
          //StreamWriter classından dosya isimli bir nesne oluşturalım
          StreamWriter dosya = new StreamWriter("c:\\Deneme.txt");

         //Dosyamıza birinci satırı yazalım
         dosya.WriteLine("Metin dosyamızın ilk satırı");

         //Buda dosyamıza yazdığımız ikinci satır
         dosya.WriteLine("İkinci satır...");

        //Dosyamızın kapatılım..
        dosya.Close();

       //Yazma işlemini başarı ile tamamladığımızı kullanıcıya bildirelim..
      Console.WriteLine("Dosya yazımı Başarı ile tamamlandı...");

    }

   static void DosyadanOku(string dosyaIsmi)
    {
        // Text dosyasından okuyan StreamReader sınıfına ait bir 
        // dosyaOku nesnesini oluşturuyoruz
       StreamReader dosyaOku;

      // dosyadan okuyacağımız yazıyı string olarak depolamak için
      // yazı nesnemizi oluşturuyoruz.
      string yazi;

      //Dosyamızı okumak için açıyoruz..
      dosyaOku=File.OpenText(dosyaIsmi);

     //Dosyamızı okumak için açıyoruz ve ilk satırını okuyoruz..
     yazi=dosyaOku.ReadLine();

     /* okuduğumuz satırı ekrana bastırıp bir sonraki satıra geçiyoruz
    * Eğer sonraki satırda da yazı varsa onu da okuyup ekrana bastırıyoruz. 
    * Bu işlemleri dosyanın sonuna kadar devam ettiriyoruz.. */

     while(yazi!=null)
     { 
        Console.WriteLine(yazi);
        yazi=dosyaOku.ReadLine();
     }

     // dosyamızı kapatıyoruz..
     dosyaOku.Close();
} 

    static void DosyayaEkle(string dosyaIsmi)
     {
        //StreamWriter classından dosya isimli bir nesne oluşturalım
        StreamWriter dosya;

        // dosyamızın sonuna birşeyler eklememek için açıyoruz..
       dosya=File.AppendText(dosyaIsmi);

       // dosyanın sonuna birşey ekliyoruz..
       dosya.WriteLine("Bu da en son Append ile eklediğimiz satır...");

       // Dosyamızı kapatıyoruz..
       dosya.Close();

       Console.WriteLine("Dosyanın sonuna başarı ile ekledik...");
    }

}

Hiç yorum yok:

Yorum Gönder