C#'ta Temel Metin Dosyasý Ýþlemleri

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 deerkeyi çalýþtýrmanýzý ve hatta kod ile oynayýp deðiþiklikleri incelemenizde yarar olduðunu düþünüyorum. Herkese baþarýlar...

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...");
    }

}