11 Mart 2015 Çarşamba

Asp.NET Dosya Yazma İşlemleri ( StreamWriter ) C# -1

C#’ta dosya islemleri için System.IO kütüphanesi kullanilir.
StreamWriter sınıfının genel özellikleri:
StreamWriter  belirli bir kodlamada karakter çıktıları için dizayn edilmiştir.
Aksi belirtilmedikçe varsayılan olarak UTF8 Encoding kodlamayı kullanır. Ayrıca UTF8 kodlama BOM (Byte Order Mark) olmadan ya da diğer deyişle WithoutBOM olarak yapılandırılmıştır.
Eğer StreamWriter sınıfını UTF8 Encoding BOM olarak kullanmamız gerekiyorsa “StreamWriter(String, Boolean, Encoding)” yapısını kullanmalıyız.
Varsayılan olarak, bir StreamWriter parçacığı güvenli değildir. Güvenlik söz konusu ise
Yazma işlemleri için yine System.IO Namespace’ i içinde yer alan TextWriter sınıfını tercih etmeliyiz.
bu sınıfın Constructor, Fields, Methods ve Properties’ leri vardır.
File sınıfının genel özellikleri:
FileStream nesneleri için yani dosya akış nesneleri için dosya yaratma, kopyalama, silme, taşıma ve dosyaların açılması gibi işlemler için statik yöntemler sağlar.
Ayrıca dosya oluşturulma, erişim ve yazma tarihi gibi dosya öznitelikleri hakkında bilgi almak ya da ayarlamak için kullanılabilir.
File sınıfının tüm metotları static’ dir. Bu nedenle dosya işlemlerinde tek bir eylem gerçekleştirilecekse File sınıfı uygundur. Ancak daha efektif bir eylem söz konusu ise yine Sytem I/O Namespace’ i içinde bulunan FileInfo sınıfını kullanmak daha uygun olur.
File sınıfının tüm static metotları güvenlik kontrolünden geçirilir. Ancak bazen güvenlik kontrolü gerekmeyebilir. Bu gibi durumlarda FileInfo sınıfını kullanmak daha uygun olur.
Varsayılan olarak yeni dosyalarda tüm kullanıcılara tam okuma ve yazma erişim hakkı verilir.
File sınıfının sadece metotları vardır.
FileAccess:
Bir dosyaya okuma ve yazma erişimini belirtir.
FileShare:
Zaten kullanımda olan bir dosya için izin verilen erişim düzeyini belirtir.
FileMode:
Var olan bir dosyanın içeriğinin korunup korunmadığı ya da üzerine yazılıp yazılmadığını belirler.
Bunun için öncelikle projemize bu kütüphaneyi ekliyoruz.
using System.IO;
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.
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.
“\r\n” ekleyerek; text dosyanizda satir basi olusturabilirsiniz. Kod tarafindan satir başi ekleme aşağidaki kodu kullanarak yapilabilir:
SW.WriteLine(“satır 1.\r\nsatır 2.”);
Bu sınıflar sadece text dosyaları için değil, text dosyası gibi çalışan tüm benzerleri içinde kullanılır. XML, web sayfaları, sınıflar (.cs ya da .vb)
Aşağıda Yeni bir metin belgesi oluşturulmuş ve içine veri yazılmış 3 örnek vardır;
1.ornek;
protected void Button1_Click(object sender, EventArgs e)
{
//Öncelikle bir dosya oluşturmak için FileStream class kullanıyorum, bundan bir instance alıyorum
//Daha sonra dosya oluşturulacağı için Create diyorum ve dosyanında erişim moduna yazma izni veriyorum,
//çünkü içeriğine yazı ekleyeceğim.
FileStream fs = new FileStream(Server.MapPath(“deneme2.txt”), FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
//içeriği yazıyorum
sw.WriteLine(“deneme yazısı dosyaya eklendi”);
//instance aldığım nesnelerimi kapatmalıyım, gereksiz yere bellek işgali olmasın.
sw.Close();
fs.Close();
}
2.örnek;
protected void Button1_Click(object sender, EventArgs e)
{
string appPath = Request.PhysicalApplicationPath;
string filePath = appPath + “Dosya.txt”;
StreamWriter YaziYazma;
YaziYazma= File.CreateText(filePath);
YaziYazma.WriteLine(“Eklenecek birinci satır..”);
YaziYazma.WriteLine(“İkinci Satır…”);
YaziYazma.Flush();
YaziYazma.Close();
Response.Write(“Dosya Başarılı bir şekilde oluşruldu.!!! <br />”+filePath);
}
3.örnek;
   protected void Button1_Click(object sender, EventArgs e)
    {
        // Yazy yazmak için StreamWriter Nesnesi tanımlıyoruz ve txt dosyası adını ve yolunu oluşturuyoruz
        StreamWriter YaziYazma = new StreamWriter(Server.MapPath(“deneme.txt”));
         // Alt alta yazdırmak istediğimiz zaman WriteLine kullanıyoruz. Eğer yan yana yazdırmak isterseniz Sadece Write kullanabilirsiniz.
        YaziYazma.WriteLine(“Eklenecek birinci satır..”);
YaziYazma.WriteLine(“İkinci Satır…”);

        YaziYazma.Close();
        YaziYazma.Dispose();
    }        

Hiç yorum yok :

Yorum Gönder