c# stream

C# MemoryStream, NetworkStream, CryptoStream

MemoryStream Sınıfı

Uygulamanızın sık sık veriye ihtiyaç duyduğu durumlarda verileri dosya (file)’da tutmak uygulamanızın performansını düşürür ve arayüzün yanıt süresini geciktirir. Örneğin uygulamanız bir veri kümesinden sıklıkla bir referans veriye ihtiyaç duyduğu zaman bu veri kümesini dosyada tutmak doğru bir seçim olmaz. Bu gibi durumlarda veriyi dosya yerine MemoryStream’de saklamak daha efektif bir çözüm olmaktadır. Çünkü MemoryStream geçici veri saklama işleminde veriyi bellekte sakladığından hızlı depolama imkanı sunmaktadır.
(daha&helliip;)

C# Streams

Net Framework çalıştığı sistem üzerinde girdi,çıktı (input,output) I/O işlemleri için içerisinde streams-based hazır yapılar sunmaktadır. Bu öz (core) sınıflar System.IO namespace’i içerisinde yer almaktadır. Stream olarak ifade eden tüm sınıflar Stream ana sınıfından türetilmiştir.

Stream’ler verinin soyut hali olan birer byte dizisi olduğundan, bu byte dizileri manipüle etmek için byte diziler üzerinde okuma, yazma ve atlama (read,write and seek) gibi temel basit operasyonlar yapabiliyor olmamız gerekir.

Yazıya devam etmeden önce Stream kelimesinin türkçedeki karşılığı olan akış kelimesi ile anlamını kavramanıza yardımcı olmak adına açıklayayım. Aşağıdaki resimde görüldüğü üzere akış yardımcı bellek(Stream backing store) bilgisayar ve network üzerindeki herhangi bir kaynak olabilir ve burada verilerimizi tutuyor olabiliriz. Bu veriyi başka bir kaynağa göndermek için akış (stream) haline getiriyoruz ki okuma ve yazma operasyonlarını kolay ve yönetilebilir şekilde yapmamıza olanak tanımış olalım.

Stream Reader Writer

Stream sınıfı sayesinde stream üzerinde binary I/O operasyonları, TextReader ve TextWriter sınıfları sayesinde ise karekter I/O operasyonları, BinaryReader ve BinaryWriter sınıfları sayesindede daha ilkel (primitive) tipler için I/O işlemlerini gerçekleştirebiliriz.

(daha&helliip;)