C sharp ile text dosya oluşturmak,dosyaya yazmak ve dosyadan okumak

 

Merhaba.

 

   Bu yazıda C# da dosya işlemlerini incelip ve örnek bir uygulama geliştiriyor olacağız.  Bilindiği gibi masaüstü ya da web yazılımda verilerin saklanması için veritabanı programları kullanılmaktadır. (MS SQL Server , My SQL, Oracle, Ms Access gibi ) . Ancak bazı durumlarda web sayfamızdaki ya da programımızdaki  verileri Veritabanı  yerine basit bir txt ,doc uzantılı   bit metin editöründe saklamak isteyebiliriz.

            Verilerimizi  bir txt dosyasına yazdırmak ve txt dosyasından  okutmak için C# da System.IO  ve System.Text namespacelrini kullanırız.

Bu namespacelere ait StreamReader ile txt dosyarından okuma StreamWriter ile de yazma işlemlerini yapabiliyoruz.

            Dosyaya veri yazma ya da dosyadan veri okuma işlemlerinin tümü satır satır yapılır. Yani txt dosyasının ilk satırından başlanır ve okunur / yazılır ve bir sonraki satıra geçilir ve tekrar okunur /  yazılır… Bu işlem boş satıra ulaşana kadar devam eder.

 

Yeni Dosya oluşturmak :

StreamWriter Dosya=File.CreateText("yol\dosyaAdi.txt");

 Örenğin c: dizinine yeni ibr txt dosyası oluşturmak için yol yerine

C:\dosy.txt  yazılır.

StreamWriter Dosya=File.CreateText("c:\dosya.txt");

 

Daha önce oluşturulan dosya ekleme yapmak için  :

StreamReader Dosya = File.AppendText("c:\dosya.txt");

Dosya.WriteLine(“Dosyaya Yalıcak yazı.”);

(Not 1 : WriteLine komutu Dosyaya metni yazdıkatan sonra bir alt satıta geçer)

(Not 2 : yol yerine sadece dosya.txt yazılırsa dosya projenin içerisindeki bin klasörünün altındaki Debug klasörünün içerisine kaydedilir !!! )

 

Dosyadan okuma yapmak :

StreamReader dosya = File.OpenText("c:\dosya.txt");

Dosyadan sadece okuma yapılacaksa File.OpenText ile açılır.

Ve satır satır okunur.

Örneğin :

string satir1 = dosya.ReadLine();

string satir2 = dosya.ReadLine();

string satir3 = dosya.ReadLine();

string satir4 = dosya.ReadLine();

 böylece her satırdaki değerler istenildiği gibi kullanılır.

Her satırı bu şekilde tek tek okumak tabiki mantıklı bir yol değildir. Onun yerine While döngüsü kullanılabilir.

 Örnek:

StreamReader dosya = File.OpenText("c:\dosya.txt");//dosyayı açtık.

string siradaki_satir = dosya.ReadLine();// ilk satırı okutuyoruz ve alt satıra geçiyoruz.

while (siradaki_satir != null) //satır boş olana kadar okutuyoruz

            {

                lstListem.Items.Add(siradaki_satir);//okunan veriyi listboxa eklettik.

                siradaki_satir = dosya.ReadLine(); //satırı bidaha okuttuk.

            }

            dosya.Close();

 

 

(Not : ReadLine komutu Dosyadan metni okuduktan sonra bir alt satıta geçer)

 

 

Şimdi Örnek Uygulamamız geçelim.

İlk olarak aşağıdaki windows formunu tasarlayalım

 

 

Şimdi ilk olarak Formumuz ilk açıldığında dosya.txt dosyasının var olup olmadığını kontrol edelim, dosya yok ise oluşturalım. Bunu yapmak için Try Catch bloğunu kullanabilirz. Form_Load aşağıdaki gibi .

 

private void Form1_Load(object sender, EventArgs e)

        {

 

            try

            {

                StreamReader Dosya = File.OpenText("dosya.txt");//Dosyayı açmaya çalış olmaz ise catch bloğuan geç

                Dosya.Close();

            }

            catch

            {

               

               StreamWriter Dosya=File.CreateText("dosya.txt");// yeni dosya oluştur.

               Dosya.Close();

            }

          

        }

 

Şimdi txtAd ve txtSoyad textboxlarına girilen değerleri dosyaya WriteLine ile yazdıralım. Kaydet butonuna çift tıklayıp kodları ekleyelim.

 

private void btnKaydet_Click(object sender, EventArgs e)

        {

            StreamWriter Dosya = File.AppendText("dosya.txt");//Dosyayı appendText ile yazmak için açtık

            Dosya.WriteLine(txtAd.Text+"\t"+txtSoyad.Text); // Dosya.WriteLine ile dosyaya isim ve soyisim text kutularındaki değerleri aralrına bir tab boşluk bırakarak ekledik.

            Dosya.Close(); // Dosya yı kapattık.

           

        }

 

Görüldüğü gibi txtAd ve txtSoyad daki yazıları aralına bir TAB kadar boşluk bırakıp dosyaya yazdırdık.

 

Sıra geldi bu dosyadaki verileri listbox da listeletmeye

 

Listele butonuna çift tıklayıp kodları yazalım.

 

private void btnListele_Click(object sender, EventArgs e)

        {

            lstListem.Items.Clear();//Listboxda önceden görünen bir değer varsa temizliyoruz

          

            StreamReader dosya = File.OpenText("dosya.txt");//Stream Reader ile Dosyayı okuyoruz.

            string s = dosya.ReadLine();//ilk satırı okuyoruz.

            while (s != null)//s boş olmadığı sürece satırı okutup bir alt satıra geçiyoruz.

            {

                lstListem.Items.Add(s);//Listbhox a okunan satırı ekletiyoruz.

                s = dosya.ReadLine(); // ve satırı okutup tekrar bir alt satıra geçiyoruz.

            }

            dosya.Close();//Dosyayı kapatıyoruz.

        }

 

 

 Örnek Uygulmayı buradan indirebilirsiniz.

 

Kolay Gelsin.

 

 

 

Bunu beğen
Paylaş

Yorumlar
Yorum Yaz
İsim : (*)
E-mail :
Web Adresi:
:
(*)
 
Kapat