.Net platformunda I/O işlemleri akımlar üzerine kurulmuştur.
Akım: byte düzeyinde bir girdi veya çıktı bilgisi oluşturulmasıdır.Farklı işlemler için farklı akımlar mevcuttur. Örneğin: network gibi aygıtlardan bilgi okuma, ekrana yazma,fiziksel diske yazma.
.NET Framework da 3 standart akım bulunur.
- Console.Out : standart çıkış akımı
- Console.In :Standart giriş akımı
- Console.Error : Standart Hata akımı
Dikkat: Konsol uygulamalarında kullandığımız WriteLine(),ReadLine() gibi metodlar Consele.Out,In metodlarına aracılık ederler.
.NET Framework’te hem byte hem de karakter akımı sınıflar mevcuttur.Karakter akımı sınıfları temelde byte akımı sınıfları kullanır. Akım sınıflarının temelini soyut bir sınıf olan System.IO.Stream sınıfı oluşturur.Sınıfın temel metodları :
Şimdi stream sınıfından türemiş akım sınıflarına bakalım. Akımlar program yazarken çok kullanacağımız sınıflardandır.
- BufferedStream : Tampon Bölgeden okuma yazma işlemi yapan Akım sınıfıdır.Performansı yüksek sınıflardandır. Veriler Byte olarak okunur veya yazılır.
- FileStream : Dosya ya yazma okuma işlemlerinde kullanılır.
veriler byte olarak okunur yazılır. - MemoryStream : Direk belleği veri depolamak için kullanan akım.Byte veri okur yazar.
- NetworkStream : Bir soket üzerinden veri alış verişinde bulunurken kullanacağımız akımdır.
Yukarıdaki sınıflar byte akımı için kullanılan sınıflardır. Peki .net frameworkde karakter akımı için streamler varmıdır?
Karakter akmı için aşağıdaki streamler kullanılır:
- StreamReader : Byte türündeki akımdan karakterleri okur.
- StreamWriter : Byte türündeki akıma karakteri yazar.
- StringReader : String türündeki bir nesneden karakterleri okur.
- StringWriter : String türündeki bir nesneye karakteri yazar.
Bu sınıfların Temelini iseTextWriter, TextReader oluşturur.
.Net Framework un diğer akım sınıfları ise ;
- BinaryReader,BinaryWriter : İkili(binary ) tipte verilerin okunup yazılmasını sağlayan streamlerdir.
Şimdi bir kaç örnek yapalım.
TextWriter dosya = new StreamWriter(@"C:\ibrahim.txt");//stream oluşturuyoruz. // dosya1.ReadToEnd() metodu ile dosyayı sonuna kadar okuyabilirdik. |
FileStream Dosya = new FileStream(@"C:\ibrahim.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read);// doyamzı açmak yada yaratmak için hazırlıyoruz. |
FileStream i bu şekilde de kullanabiliriz
FileStream fs = new FileStream(@"c:\ibrahim.txt", FileMode.OpenOrCreate, FileAccess.Write); |
Şimdi birde Memorystream Kullanımına bakalım.
MemoryStream memYaz = new MemoryStream();//stream tanımlıyoruz |
Hiç yorum yok:
Yorum Gönder