Giriş
MemoryStream sınıfı şifrelemeden sıkıştırmaya kadar her yerde kullanıldığı için kendi yazısını hakediyor.
using ile kullanım
Bu sınıf her zaman using ile kullanılmalı.
Şöyle yaparız. Hem okuma hem de yazma işlemi yapılabilir ancak bence sadece yazma işlemi yapmak daha okunaklı.
Şöyle yaparız. Hem okuma hem de yazma işlemi yapılabilir ancak bence sadece okuma işlemi yapmak daha okunaklı.
Örnek ver. Eğer writable false ise Write işlemi exception fırlatılır. Eğer writable true ise hem okuma hem de yazma işlemi yapılabilir.
Close metodu
Şöyle yaparız.
Bir stream'den diğerine kopyalar.
Stream'in içindeki tüm bellek alanını verir. ToArray'dan farklı çalışır. Length alanı ile beraber kullanmak gerekir.
Stream'in bellek alanının ne kadarının geçerli olduğunu belirtir.
Seek metodu ile aynı işi yapar.
Örnek
Şöyle yaparız.
Yazma işleminde sonra okumaya hazır hale getirmek için şöyle yaparız. Java'daki ByteBuffer sınıfının flip() metoduna benzer.
Yazma ve okumak imlecini istenilen konuma getirir.
Şöyle yaparız.
Şöyle yaparız.
MemoryStream sınıfı şifrelemeden sıkıştırmaya kadar her yerde kullanıldığı için kendi yazısını hakediyor.
using ile kullanım
Bu sınıf her zaman using ile kullanılmalı.
using (MemoryStream ms = new MemoryStream())
{...}
Constructor
Şöyle yaparız. Hem okuma hem de yazma işlemi yapılabilir ancak bence sadece yazma işlemi yapmak daha okunaklı.
MemoryStream ms = new MemoryStream()
Constructor - byte []Şöyle yaparız. Hem okuma hem de yazma işlemi yapılabilir ancak bence sadece okuma işlemi yapmak daha okunaklı.
byte [] buffer = ...;
using (var stream = new MemoryStream (buffer))
{
...
}
Constructor - byte [] + booleanÖrnek ver. Eğer writable false ise Write işlemi exception fırlatılır. Eğer writable true ise hem okuma hem de yazma işlemi yapılabilir.
Close metodu
Şöyle yaparız.
ms.Close();
CopyTo metoduBir stream'den diğerine kopyalar.
using (MemoryStream dstStream = new MemoryStream())
{
using (MemoryStream srcStream= new MemoryStream())
{
...
srcStream.CopyTo(dstStream);
}
}
GetBuffer metoduStream'in içindeki tüm bellek alanını verir. ToArray'dan farklı çalışır. Length alanı ile beraber kullanmak gerekir.
ms.GetBuffer()
Length AlanıStream'in bellek alanının ne kadarının geçerli olduğunu belirtir.
ms.Length
Position AlanıSeek metodu ile aynı işi yapar.
Örnek
Şöyle yaparız.
ms.Position = 0; // reset position
ÖrnekYazma işleminde sonra okumaya hazır hale getirmek için şöyle yaparız. Java'daki ByteBuffer sınıfının flip() metoduna benzer.
using (MemoryStream memStream = new MemoryStream())
{
// Position starts at 0
... write data
// Position is now N
memStream.Position = 0; // <-- Reset the position to 0.
using (FileStream file = new FileStream(@"d:\test.txt",
FileMode.Create, System.IO.FileAccess.Write))
{
// Will copy all data in the stream from current position till the end of the stream.
memStream.CopyTo(file);
}
}
Seek metoduYazma ve okumak imlecini istenilen konuma getirir.
ms.Seek(0, SeekOrigin.Begin);
ToArray metoduŞöyle yaparız.
byte[] bytes = ms.ToArray();
Write metoduŞöyle yaparız.
byte[] buf = ...;
ms.Write(buf, 0, buf.Length);
Hiç yorum yok:
Yorum Gönder