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