İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# StreamReader ve StreamWriter Kullanımı

C# StreamReader ve StreamWriter Kullanımı
+ - 0

C# StreamReader ve StreamWriter Kullanımı, yazımız ile C# eğitimlerimize devam ediyoruz. StreamReader ve StreamWriter sınıfları metin belgelerinden metin okuma ve yazma işlemleri için kullanılır. Metin belgesi dediğim sadece txt uzantılı dosyaları kastetmiyorum. html, xml gibi dosyaların içerisindeki metinleri de okuyabiliriz. C sharp StreamReader ve StreamWriter Kullanımı , için projenize System.IO namespace’ini eklemeniz gerekmektedir. NameSpace konusu hakkında yazdığım derse buradan ulaşabilirsiniz.

C# dersleri

C# StreamReader ve StreamWriter Kullanımı

C# StreamReader Kullanımı

StreamReader, metin okuma işlemleri için kullanılır.  En basit kullanımı aşağıdaki gibidir.

System.IO.StreamReader Oku = new System.IO.StreamReader("C:\\Metin.txt");
string metin = Oku.ReadLine();

Tüm Belgeyi Okumak Yol 1

Bu kod ile C sürücüsündeki Metin.txt adlı dosyaya erişiyoruz. İlk satırımız ile dosyaya eriştik ve dosyayı açtık. İkinci satır ile de metin belgesinin ilk satırını okuduk. Buraya dikkat ilk satırı diyorum. Tüm içeriği okumak için başka yollarımız var. While döngüsü ile tüm satırları okuyabiliriz.

 System.IO.StreamReader Oku = new System.IO.StreamReader("C:\\Metin.txt", Encoding.Default);  
 while (!Oku.EndOfStream)  
 {  
    listBox1.Items.Add(Oku.ReadLine());  
 }  
 Oku.Close();

İlk satırdaki Encoding.Default kısmında UTF8 , ASCII vs formatları belirtiyoruz. Eğer metin belgesinin formatını biliyorsak burada onu belirtebiliriz.

EndOfStream kısmında ise okunmayan satır kalmayana kadar okumaya devam edeceği anlamına gelir. While döngüsü içerisinde de okudğumuz satırları bir listbox a ekliyoruz. Burada okudaklarımı bir string değişkene atamak istersek şu şekilde kullanabiliriz.

 System.IO.StreamReader Oku = new System.IO.StreamReader("C:\\Metin.txt", Encoding.Default); 
 string Okunan = "";
 while (!Oku.EndOfStream)  
 {  
    Okunan += Oku.ReadLine() + " ";  
 }  
 Oku.Close();

Buradaki örnekte bir string değişken tanımladık ve += operatörü ile her okunan satırı string değişkenimizin sonuna ekledik. Döngü sona erdiğinde metin belgesindeki tüm metinler string değişkene atanmış olacaktır.

Tüm Belgeyi Okumak Yol 2

Tüm belgeyi okumanın bir yolu daha vardır ve bu yol daha kısadır. Ama yukarıdaki yöntem ile bu yöntemin kullanım konusunda farkları vardır. Yani biri daha kısa olmasına rağmen her zaman kullanmayız. Duruma göre kullanırız.

 System.IO.StreamReader Oku = new System.IO.StreamReader("C:\\Metin.txt", Encoding.Default); 
 string Okunan = Oku.ReadToEnd();
 Oku.Close();

Burada da metin belgesi tek seferde baştan sona kadar okunur.

Şimdi burada neden farklı kullanımları olduğuna değinelim.

Diyelimki elinizde bir metin belgesi var ve bu metin belgesinde bir tablo misali belirli bir karakter ile ayrılmış olduğunu düşünelim.

Örneğin:

1 , mustafa , bükülmez , C# streamreader

2 , mustafa , bükülmez , C# streamwriter

Bu şekilde bir metin belgesi var ise elinizde, ikinci yoldan okumak tek satır gibi okur bu bilgileri bir tabloya vs. aktaramayız. Bu şekildeki bir metin belgesi okunurken her satır ayrı ayrı alınmalıdır ki işimize yarasın değil mi?

Ama atıyorum, elinizde bir roman metni var diyelim. Bu metini projenize alıp birkaç işlem yapmanız gerekiyor gibi bir durum varsa ikinci yöntem kullanılmalıdır.

C sharp eğitimi

C# StreamWriter Kullanımı

Bu sınıf ise bir metin belgesine yazılar yazmak için kullanırız. Kullanım şekilleri ise hemen hemen aynıdır.

StreamWriter Yaz = new StreamWriter("C:\\Metin.txt");

Burada yukarıda kullanmadığımız bir yöntem ile kullanalım. Elimizde farklı kullanım şekilleri olsun.

string DosyaYolu = "C:\\Metin.txt";  
if (File.Exists(DosyaYolu))  
{  
    // Dosya var  
}  
else  
{  
    // Dosya yok  
}

Buradaki kodlara bakacak olursak; DosyaYolu adlı değişkenimize içine yazı yazacağımız dosyanın yolunu yazdık. Dosyayı yazmadan önce öyle bir dosya varmı diye kontrol etmemiz lazım ki, yazma işlemini yapacağımızda program patlamasın / kırılmasın…

Yıkarıdaki File.Exist kodu ile dosyanın var olup olmadığını kontrol ediyoruz.

Şimdi yazma işlemine bakalım.

Write

StreamWriter Yaz = new StreamWriter("C:\\Metin.txt");  
            Yaz.Write("C# StreamWriter");  
            Yaz.Write("Mustafa BÜKÜLMEZ");

İşte yukarıdaki kadar basit bir işlem. Kaç Write satırı yazılırsa yazılsın, metin belgesinde bir satırı temsil eder. Yani bu kodları çalıştırıp metin belgesini açtığımızda ;

C# StreamWriter Mustafa BÜKÜLMEZ

şeklinde yan yana yazılmış olacaktır.

WriteLine

StreamWriter Yaz = new StreamWriter("C:\\Metin.txt");  
            Yaz.WriteLine("C# StreamWriter");  
            Yaz.WriteLine("Mustafa BÜKÜLMEZ");

Kodlardan anlayacağınız gibi her WriteLine satırı metin belgesindeki bir satırı temsil eder. Yani bu kodları çalıştırıp metin belgesini açtığımızda;

C# StreamWriter

Mustafa BÜKÜLMEZ

şeklinde alt alta yazılmış olacaktır.

Şimdi dosyamızı açtık, verileri yazdık son olarak dosyayı kapatmamız gerekiyor. Aksi halde bu dosyaya tekrar bir şeyler yazmak istediğimizde dosya başla bir uygulama tarafından kullanılıyor hatası verecektir.

StreamWriter Yaz = new StreamWriter("C:\\Metin.txt");  
            Yaz.WriteLine("C# StreamWriter");  
            Yaz.WriteLine("Mustafa BÜKÜLMEZ");
            Yaz.Close();

Close(); ile dosyamızı kapattık.

 


 

C Sharp StreamReader ve StreamWriter Kullanımı, yazımız da bu kadar dostlar. Diğer derslerimizde görüşmek üzere.

C Sharp Eğitim Seti ve ERP Programlama ders listesi için tıklayınız. 

Takipte ve Sağlıcakla Kalın. ;)

 

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)