Stream nesnesi ile txt dosyası yazma-okuma

Admin tarafından yazılmıştır. 13. Kasım 2008 12:42

Merhabalar :)

Yeni yazımızda IO namespace imizin Stream nesnesini kullanarak  dosya okuma ve yazma işlemleri ile çok basit bir Not Defteri uygulaması yapmak.Amaç Stream nesnesinin işleyişini anlamak.Programımız Kaydet,Dosya Oku butonlarından ve dosya isminin girildiği,içeriğimizin girildiği iki adet textbox'dan oluşuyor.İçeriğimizin girildiği textboxımızı seçtikten sonra Properties'den MultiLine özelliğini True yapmayı unutmayalım.

c# stream

Ve artık kod aşamasına geçebiliriz . :)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace SeasNotDefteri
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
      
        //amacımız formumuzda bulunan textbox'da girilen degerleri Stream nesnemizle sistemimizde C nin altına yazıp tekrar istenildiğinde önceki kayıtlı dosyaları okumaya çalışacağız.
        //İlk olarak dosya yazma-okuma işlemlerini yapabilmemiz için projemize IO namespace'imizi eklememiz lazım.Bunun için Projemize using System.IO; yu ekliyoruz.Şuan okuma ve yazmamızı sağlayacak nesnelerimiz hazır.
        //formuzu birtane textBox ekliyoruz ve adını txtdosyaisim yapıyoruz bu kaydederken ki dosya adımız olacak.
        //birtane kaydet  , bir tane dosya oku isimli buton oluşturup bir tanede textBox ekliyoruz ve seçili hale getirdiğimizde hemen üstünde play işaretine benzeyen yere tıkladığımızda çıkan pencereden MultiLine seçeneğini seçiyoruz ki textbox umuzu not defteri gibi kullanabilelim.

        //Ve dosya kaydet butonunun kodlarıyla başlıyoruz.
        private void button1_Click(object sender, EventArgs e)
        {
            //güvenlik için bir if kontrolü yapıyoruz.Dosya adını girdiğimiz textbox yani txtdosyaisim'in uzunluğu 0 dan büyükse(bu dosya adının girilmiş olduğu anlamına gelir) işlem çalışıp dosya C'nin altına kaydediliyor.Eğer dosya adı girilmemişse else blogu çalışıp hata mesajı ile uyarılıyor.
            if (txtdosyaisim.Text.Length > 0)
            {
                //kaydederken verilecek olan dosya ismini txtDosyaAd değişkenine atıyoruz.
                string txtDosyaAd = txtdosyaisim.Text;

                //daha sonra dosyaYol değişkenimize o dosya adını kullanılarak C'nin altına dosyamızı kaydediyoruz.@ işaretinin amacı klasör yollarındaki \ işaretini string bir değer olarak değilde klasör yol belirleyicisi olarak algılamasını sağlıyoruz.
                string dosyaYol = @"C:\" + txtDosyaAd + ".txt";

                //Yazma işlemini yapmamız için nesnemizi tanımlıyoruz ve parametrelerine dosya yolumuzu veriyoruz.
                StreamWriter sw = new StreamWriter(@dosyaYol, true);

                //oluşturduğmuzu nesnemizin WriteLine metoduna parametre olarak yazımızın yazıldıgı textBox1 i atıyoruz ve yazma işlemi başlıyor.
                sw.WriteLine(textBox1.Text);

                //dosyamıza yazdıktan sonra güvenlik için nesnemizi kapatıyoruz.
                sw.Close();

                //kayıt işlemimiz problemsiz olduğundan bir mesaj kutusuyla bilgi veriyoruz
                MessageBox.Show("Kayıdınız başarı ile yapılmıştır","Mesaj",MessageBoxButtons.OK,MessageBoxIcon.Information);
            }
            else
            {
                //txtdosyaisim isimli textbox'a isim girilmemişse yukarıda yaptıgımız if kontrolü çalışıyor ve hata mesajını fırlatıyoruz.
                MessageBox.Show("Dosya adı giriniz","Hata",MessageBoxButtons.OK,MessageBoxIcon.Error);
            }

            //dosya adı girilmiş ise C'nin altına baktığımızda verdiğimiz isimde ve içeriğini girdiğimiz bilgiler doğrultusunda bir txt dosyası olduğunu göreceğiz.
        }

        //Sıra geldi yazdığımız dosyaları okumamıza.
        private void btnDosyaOku_Click(object sender, EventArgs e)
        {
            //openfile nesnesiyle penceremizi açıyoruz.
            openFileDialog1.ShowDialog();
           
            //açılan pencereden seçtiğimiz dosyanın yolunu dosyaYol isimli değişkene atıyoruz.
            string dosyaYol = openFileDialog1.FileName;
           
            //Daha sonra yazmada kullanmış olduğumuz StreamWriter nesnesinin aksine okumak için IO namespace inin StreamReader nesnesini kullanıp sr adında bir nesne yaratıp parametrelerine seçmiş oldugumuz dosyanın yolunu ve okuma işleminde karakter problemi çıkmasın diye encoding ayarını default yapıyoruz.
            StreamReader sr = new StreamReader(dosyaYol, Encoding.Default);

            //oluşturduğumuz sr nesnesinin ReadToEnd() metoduyla dosyanın sonuna kadar okuyup icerik isimli değişkenimize atıyoruz.
            string icerik = sr.ReadToEnd();

            //oluşturdugumuz icerik isimli değişkende artık seçilen dosyanın bilgileri olduğundan Textbox'umuza atıyoruz.
            textBox1.Text = icerik;

            //ve son olarak yine bağlantımızı kapatıyoruz.
            sr.Close();
       }
   }
}


Projeyi indirmek için tıklayın 

Umarım dosya okuma yazma işlemlerini merak eden arkadaşların ihtiyacını gidermiştir :)

Kendinize iyi bakın

Serhat  Taş

 

4 kişi tarafından 4.3 olarak değerlendirildi

  • Currently 4,25/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler: , ,

C# & .NET

Yorumlar

Yorum ekle


(Gravatar simgesini gösterecek)  

biuquote
  • Yorum
  • Canlı önizleme
Loading



Powered by BlogEngine.NET 1.4.5.0
Bu tema Mads Kristensen tarafından yapılmıştır ve Türkçeleştirilmesi Blog Engine Türkiye ekibi tarafından yapılmıştır.

Son Yorumlar

Comment RSS

Yasal Uyarı

Bu sitede sunulan tüm bilgi ve dökümanların kullanımından ve sitede yapılan kullanıcı yorumlarından (siyasi içerik,hakaret vb.) doğacak sorunlardan yazar sorumlu tutulamaz. 

İçeriğin kaynak belirtilmeden kopyalanması yasaktır !

SERHAT TAŞ

© Copyright 2010