Merhaba Webkolog okurları,
Bugün sizlere, C# .NET Framework 4 ve Microsoft Visual
Studio 2010 kullanarak, metin dosyaları üzerinde nasıl işlemler
yapabileceğinizi anlatacağım. Bu işlemler, dosya okuma ve yazma gibi temel
dosya yönetimi görevlerini içerir.
Giriş
.NET Framework, System.IO namespace'i ile dosya
işlemleri için zengin bir altyapı sunar. Bu makalede, bu altyapıyı kullanarak
metin dosyalarını nasıl okuyup yazabileceğimizi inceleyeceğiz.
1. Dosyadan Okuma
Bir metin dosyasından veri okumak için FileStream ve
StreamReader sınıflarını kullanırız. İşte bir örnek:
public static void dosyadanOku()
{
string dosya_yolu = @"C:\metinbelgesi.txt";
// Okuma yapacağımız dosyanın yolunu belirtiyoruz.
FileStream fs = new FileStream(dosya_yolu, FileMode.Open, FileAccess.Read);
// Bir file stream nesnesi oluşturuyoruz.
// 1.parametre dosya yolunu, 2.parametre dosyanın açılacağını,
// 3.parametre dosyaya erişimin veri okumak için olacağını gösterir.
StreamReader sw = new StreamReader(fs);
// Okuma işlemi için bir StreamReader nesnesi oluşturduk.
string yazi = sw.ReadLine();
while (yazi != null)
{
Console.WriteLine(yazi);
yazi = sw.ReadLine();
}
// Satır satır okuma işlemini gerçekleştirdik ve ekrana yazdırdık.
// Son satır okunduktan sonra okuma işlemini bitirdik.
sw.Close();
fs.Close();
// İşimiz bitince kullandığımız nesneleri iade ettik.
}
- dosya_yolu değişkeni, okunacak dosyanın yolunu
belirtir.
- FileStream nesnesi, dosyaya erişim sağlamak için
oluşturulur. FileMode.Open parametresi dosyanın açılacağını,
FileAccess.Read parametresi ise dosyadan sadece okuma yapılacağını
belirtir.
- StreamReader nesnesi, FileStream nesnesi
üzerinden okuma yapmak için oluşturulur.
- sw.ReadLine() metodu, dosyanın bir satırını okur.
Döngü içinde dosyanın sonuna kadar satır satır okuma yapılır.
- Okunan satırlar Console.WriteLine() ile ekrana
yazdırılır.
- İşlem bittikten sonra StreamReader ve FileStream
nesneleri Close() metodu ile kapatılarak kaynaklar serbest bırakılır.
2. Dosyaya Yazma
Bir metin dosyasına veri yazmak için FileStream ve
StreamWriter sınıflarını kullanırız. İşte bir örnek:
private static void dosyayaYaz()
{
string dosya_yolu = @"C:\metinbelgesi.txt";
// İşlem yapacağımız dosyanın yolunu belirtiyoruz.
FileStream fs = new FileStream(dosya_yolu, FileMode.OpenOrCreate, FileAccess.Write);
// Bir file stream nesnesi oluşturuyoruz.
// 1.parametre dosya yolunu, 2.parametre dosya varsa açılacağını yoksa oluşturulacağını belirtir,
// 3.parametre dosyaya erişimin veri yazmak için olacağını gösterir.
StreamWriter sw = new StreamWriter(fs);
// Yazma işlemi için bir StreamWriter nesnesi oluşturduk.
sw.WriteLine("1.Satır:Merhaba");
sw.WriteLine("2.Satır:Dünya");
// Dosyaya ekleyeceğimiz iki satırlık yazıyı WriteLine() metodu ile yazacağız.
sw.Flush();
// Veriyi tampon bölgeden dosyaya aktardık.
sw.Close();
fs.Close();
// İşimiz bitince kullandığımız nesneleri iade ettik.
}
- dosya_yolu değişkeni, yazılacak dosyanın yolunu
belirtir.
- FileStream nesnesi, dosyaya erişim sağlamak için
oluşturulur. FileMode.OpenOrCreate parametresi dosyanın varsa açılacağını,
yoksa oluşturulacağını belirtir. FileAccess.Write parametresi ise dosyaya
yazma yapılacağını belirtir.
- StreamWriter nesnesi, FileStream nesnesi
üzerinden yazma yapmak için oluşturulur.
- sw.WriteLine() metodu, dosyaya bir satır
yazılmasını sağlar. Bu örnekte iki satır yazılıyor.
- sw.Flush() metodu, verinin tampon bellekten
dosyaya aktarılmasını sağlar. Bu, verinin hemen dosyaya yazılmasını
garantiler.
- İşlem bittikten sonra StreamWriter ve FileStream
nesneleri Close() metodu ile kapatılarak kaynaklar serbest bırakılır.
Ek Notlar
- Dosya yolu belirtilirken @ karakteri
kullanılarak, ters eğik çizgi (\) karakterinin özel anlamı ortadan
kaldırılır ve doğrudan dosya yolunda kullanılabilir.
- FileMode numaralandırması, dosyanın nasıl
açılacağını veya oluşturulacağını belirtir. Append seçeneği, dosyanın
sonuna veri eklemek için kullanılabilir.
- FileAccess numaralandırması, dosyanın hangi
amaçla kullanılacağını belirtir (okuma, yazma veya okuma/yazma).
- StreamReader ve StreamWriter sınıfları, farklı
kodlamalarla (encoding) çalışabilir. Eğer dosyanızın kodlaması farklıysa,
bu sınıfların yapıcı metotlarına bir Encoding nesnesi iletebilirsiniz.
Bu makalede, C# ve .NET Framework'ü kullanarak metin dosyalarını nasıl okuyup yazabileceğimizi gördük. Bu temel işlemler, birçok uygulama için dosya yönetimi gereksinimlerini karşılayabilir.
Webkolog'u takipte kalın!
Hepinize bol kodlu günler dilerim!
0 yorum:
Yorum Gönder