Dosya Okuma Yazma İşlemleri ( StreamWriter ) C#

ürfet34
20-02-2009, 09:54   |  #1  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
154 mesaj
Kayıt Tarihi:Kayıt: Tem 2008

Dosya Okuma Yazma Islemleri
Bu yazimda dosya islemlerinden text dosyasi yazma ve okuma islemleri üzerimde duracagim. C#’ta dosya islemleri için System.IO kütüphanesi kullanilir. Bunun için öncelikle projemize bu kütüphaneyi ekliyoruz.

using System.IO;

Daha sonra formumuzu sekillendirelim. Toolbox’tan formumuza 5 button, 1 richTextBox ve 1 TextBox sürükleyip birakalim. Asagidaki gibi dizayn edelim.


Simdi butonlarin üzerinde yazan islemlerin nasil yapildigindan bahsedelim. Öncelikle butonlarin click event’lerini olusturalim.

Yazma islemi için StreamWriter sinifi kullanilir. Bunun için önce bu siniftan bir nesne olusturacagiz. StreamWriternesnesi tanimlanken string tipinde bir parametre girmemiz gerekiyor. Bu parametre üzerinde islem yapacagimiz dosyanin adresinden ve isminden olusan bir path’tir. Verilen adreste path içinde adi geçen dosya olmayabilir. Bu durumda program önce dosyayi olusturacak sonra üzerinde islem yapacaktir.

Bu programda StreamWriter sinifin yazma prosedürlerinden WriteLine prosedürünü kullanacagiz. WriteLine string tipinde bir parametreyle çalisir ve bu parametreyi dosya içinde tek bir satira yazar. Son olarak bu dosyaya ekledigimiz veriye ulasabilmek için olusturdugumuz nesneyi kapatiriz.

Okuma islemi için StreamReader sinifi kullanilir. Bunun için önce bu siniftan bir nesne olusturacagiz. StreamReadernesnesi tanimlarken string tipinde bir parametre girmemiz gerekiyor. Bu parametre üzerinde islem yapacagimiz dosyanin adresinden ve isminden olusan bir path’tir. Verilen adreste path içinde adi geçen dosya olmak zorundadir.

Bu programda StreamReader sinifin okuma prosedürlerinden ReadLine prosedürünü kullanacagiz. ReadLine, dosyayi satir satir okumak için kullanilir. Parametre istemez.
Islemi sonlandirmak için nesneyi kapatiriz.

Ekleme islemi, yazma islemine benzemektedir. Bu islem için de StreamWriter sinifini kullanilir. Aralarindaki fark tanimlamada ve uygulamada ortaya çikar. Ekleme islemini tanimlarken File.AppendText kullanilir. AppendText string tipinde bir parametre ister. Bu parametre ekleme islemi yapilacak dosyanin adresinden ve isminden olusan bir path’tir. Uygulama olarak yazma isleminden farki, dosya içinde daha önceden var olan verileri koruyarak dosyaya yeni veriler eklemesidir. Bu islemde de verilen adreste path içinde adi geçen dosya olmayabilir. Bu durumda program önce dosyayi olusturacak sonra üzerinde islem yapacaktir.

Dosyadaki tüm verileri okumak için yine StreamReader sinifi kullanilir. Burada okuma isleminden farkli olarak bir döngü kullanacagiz.

Programda okunan verileri görebilmek için richTextBox kullandik. Ilk olarak richTextBox’daki eski verileri temizledik. Verileri richTextBox’a yazarken string toplamasi yaptik. ”\n” islemi ile yeni gelen verinin bir alt satirda görünmesini sagladik.

Son butonun click event’inde richTextBox’taki tüm verilerin temizlenmesi için Clear procedürünü kullandik.


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 Dosya_Okuma_Yazma
{

public partial class Form1 : Form

{
public Form1()
{
InitializeComponent();
}


//Yazma Islemi

private void button1_Click(object sender, EventArgs e)
{
StreamWriter SW = new StreamWriter("c:\\deneme.txt");
SW.WriteLine(textBox1.Text);
SW.Close();
}

//Okuma Islemi

private void button2_Click(object sender, EventArgs e)
{
StreamReader SR = new StreamReader("c:\\deneme.txt");
richTextBox1.Text = SR.ReadLine();
SR.Close();
}

//Ekleme Islemi

private void button3_Click(object sender, EventArgs e)
{
StreamWriter SW = File.AppendText("c:\\deneme.txt");
SW.WriteLine(textBox1.Text);
SW.Close();
}

//Dosyadaki Tüm Verileri Okuma

private void button4_Click(object sender, EventArgs e)
{
richTextBox1.Clear();
StreamReader SR = new StreamReader("c:\\deneme.txt");
string metin = SR.ReadLine();
while (metin!=null)
{
richTextBox1.Text = richTextBox1.Text + "\n" + metin;
metin = SR.ReadLine();
}
}


//richTextBox’i Temizleme

private void button5_Click(object sender, EventArgs e)
{
richTextBox1.Clear();
}
}
}

Daha Fazla C# Konuları ve örnekleri için;

Son Düzenleme: ürfet34 ~ 20 Şubat 2009 09:56
DarkHellKnightX
22-02-2009, 18:00   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 4
1,663 mesaj
Kayıt Tarihi:Kayıt: Ağu 2008

teşekkürler..

ürfet34
25-02-2009, 13:55   |  #3  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
154 mesaj
Kayıt Tarihi:Kayıt: Tem 2008
xHellknightx
teşekkürler..
Rica ederim :)

Banned
03-03-2009, 14:00   |  #4  
Banlandı
Teşekkür Sayısı: 0
4 mesaj
Kayıt Tarihi:Kayıt: Şub 2009

Hi,there are many computer ebooks free download.

free ebook download

such as:c++,csharp,adobe,ajax,asp.net,head-first,java,linux,my sql,oracle,perl,ruby,rails,python,acess,visual basic

ürfet34
11-03-2009, 10:10   |  #5  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
154 mesaj
Kayıt Tarihi:Kayıt: Tem 2008
annliu
Hi,there are many computer ebooks free download.

free ebook download

such as:c++,csharp,adobe,ajax,asp.net,head-first,java,linux,my sql,oracle,perl,ruby,rails,python,acess,visual

Hocam nediyosun sen yaaa I'm Turkey..

halil_sebe
10-07-2012, 12:23   |  #6  
Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Tem 2012

teşekkurler,

iyi çalışma , bir sorum olucaktı;

adresi girilen bir internet sayfasından bir makaleyi nasıl txt doyasına yazadırabiliriz.