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