20 Temmuz 2011 Çarşamba

C# Dosya Yazma-Okuma İşlemleri(Input-Output)

C#'da uygulama geliştirirken çokça kez bir dosyaya veri yazma, veya bir dosyadan veri okuma gibi ihtiyaçları hissederiz. Şimdi size, basit olarak en kısa yoldan, bir dosyadan veri okunmasını ve yazılmasını anlatacağım.

Öncelikle dosyadan veri okuma ve yazma işlemlerimizi yerine getiren 2 sınıfımız var. Veri okuma işlemleri için, StreamReader,veri yazma işlemleri için de StreamWriter classlarını kullanırız. Kısaca kodlar üzerinden anlamaya çalışalım.

1-Veri Okuma :


FileStream file = new FileStream(@"C:\\ergin2.txt", FileMode.Open, FileAccess.Read);
StreamReader read = new StreamReader(file);


FileStream classının constructorında, sınıfa parametre olarak sırasıyla, dosyanın yolu,dosya belirtilen yolda bulduktan sonra hangi işlemi yapacak (burada açmasını istedik),üçüncü parametre olarak da bu dosyanın okunacağını belirtiyoruz. Ardından, verileri okumamızı sağlayan StreamReader sınıfına bu dosyamızı veriyoruz.


string s = "";
string line = "";

while ((line = read.ReadLine()) != null)
{
       s += line + ",";
}
if (s.Length > 1)
s = s.Substring(0, s.Length - 1);


Ardından, senaryomuza göre dosyada satır satır bulunan id'leri ReadLine() metodu sayesinde okuyup, son satır gelene kadar aralarına virgül koyarak ayırıyoruz. En son satırda da virgül olacağından, o virgülü silmek için de substring metodunu kullanıyoruz. Böylece, örnek dosyamızda;

123
456
789
...
şeklinde olan veri;

123,456,789

şeklinde okunacak.

2- Veri Yazma :



StreamWriter sw = new StreamWriter(@"C:\\ergin2.txt", true);

sw.WriteLine(txtId.Text);


Burada da, yine aynı şekilde, önce StreamWriter nesnemizi oluşturduk. Yalnız, burada dikkat etmemiz gereken nokta, StreamWriter'in string ve bool parametresini alan overload'ını kullanmamız gerekir. Aksi taktirde, veri okurkenki gibi 3 parametreli overload'ını kullanırsak, dosyamıza append edemeyiz verilerimizi. Yani verilerimiz sürekli üst üste yazılacağından, biri silinirken diğeri yazılacak, dolayısıyla sadece en son veri ekranda yazılmış olacak. Bu yöntemle, ikinci parametreye true vererek, append işlemi yapmak istediğimizi söylüyoruz ve TextBox'ımızın içinde yazan değeri de yazmış oluyoruz belirttiğimiz dosyaya.

Görüldüğü gibi, veri okuma ve veri yazma işlemleri oldukça kolay. Yapmamız gereken, FileStream nesnesini oluşturup, veri yazılacak veya okunacak dosyayı tanıtıp, hangi işlemleri yapmak istediğimizi belirtip, bizden istenen işleme göre (okuma-yazma) StreamReader veya StreamWriter classlarını kullanıp, gerekli metotlar sayesinde istediğimiz işlemleri yapmak olacaktır.

0 yorum: