MemoryStream.Read Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
Read(Span<Byte>) |
Geçerli bellek akışından bir bayt dizisini okur ve bellek akışı içindeki konumu okunan bayt sayısına göre ilerletir. |
Read(Byte[], Int32, Int32) |
Geçerli akıştan bir bayt bloğu okur ve verileri arabelleğe yazar. |
Read(Span<Byte>)
- Kaynak:
- MemoryStream.cs
- Kaynak:
- MemoryStream.cs
- Kaynak:
- MemoryStream.cs
Geçerli bellek akışından bir bayt dizisini okur ve bellek akışı içindeki konumu okunan bayt sayısına göre ilerletir.
public:
override int Read(Span<System::Byte> destination);
public:
override int Read(Span<System::Byte> buffer);
public override int Read (Span<byte> destination);
public override int Read (Span<byte> buffer);
override this.Read : Span<byte> -> int
override this.Read : Span<byte> -> int
Public Overrides Function Read (destination As Span(Of Byte)) As Integer
Public Overrides Function Read (buffer As Span(Of Byte)) As Integer
Parametreler
Bellek bölgesi. Bu yöntem döndürdüğünde, bu aralığın içeriği geçerli bellek akışı kaynağından okunan bayt ile değiştirilir.
Döndürülenler
Arabelleğe okunan toplam bayt sayısı. Bu, şu anda kullanılabilir sayıda bayt yoksa arabellekte ayrılan bayt sayısından az veya bellek akışının sonuna ulaşıldıysa sıfır (0) olabilir.
Şunlara uygulanır
Read(Byte[], Int32, Int32)
- Kaynak:
- MemoryStream.cs
- Kaynak:
- MemoryStream.cs
- Kaynak:
- MemoryStream.cs
Geçerli akıştan bir bayt bloğu okur ve verileri arabelleğe yazar.
public:
override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public override int Read (byte[] buffer, int offset, int count);
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer
Parametreler
- buffer
- Byte[]
Bu yöntem döndürdüğünde, ve (offset
+ count
- 1) arasındaki offset
değerlerin geçerli akıştan okunan karakterlerle değiştirdiği belirtilen bayt dizisini içerir.
- offset
- Int32
Geçerli akıştan veri depolamaya başlamak için sıfır tabanlı bayt uzaklığı buffer
.
- count
- Int32
Okunacak bayt sayısı üst sınırı.
Döndürülenler
Arabelleğe yazılan toplam bayt sayısı. Bu, şu anda kullanılabilir bayt sayısı yoksa istenen bayt sayısından az veya herhangi bir bayt okunmadan önce akışın sonuna ulaşılırsa sıfır olabilir.
Özel durumlar
buffer
, null
değeridir.
offset
veya count
negatiftir.
offset
arabellek uzunluğundan çıkarılmış olan değerinden count
küçüktür.
Geçerli akış örneği kapatıldı.
Örnekler
Bu kod örneği, sınıfı için MemoryStream sağlanan daha büyük bir örneğin parçasıdır.
// Read the first 20 bytes from the stream.
byteArray = gcnew array<Byte>(memStream->Length);
count = memStream->Read( byteArray, 0, 20 );
// Read the first 20 bytes from the stream.
byteArray = new byte[memStream.Length];
count = memStream.Read(byteArray, 0, 20);
' Read the first 20 bytes from the stream.
byteArray = _
New Byte(CType(memStream.Length, Integer)){}
count = memStream.Read(byteArray, 0, 20)
Açıklamalar
Bu yöntem geçersiz kılar Read.
parametresi, offset
geçerli akıştaki verilerin yazıldığı ilk bayt buffer
uzaklığını verir. parametresi geçerli count
akıştan okunacak en fazla bayt sayısını verir. Döndürülen değer, okunan gerçek bayt sayısıdır veya akışın sonuna ulaşılırsa sıfırdır.
Okuma işlemi başarılı olursa, akıştaki geçerli konum okunan bayt sayısına göre ilerler. Bir özel durum oluşursa, akış içindeki geçerli konum değişmeden kalır.
Read
yöntemi yalnızca akışın sonuna ulaşılırsa sıfır döndürür. Diğer tüm durumlarda, Read
geri dönmeden önce her zaman akıştan en az bir bayt okur. Tanımı gereği, çağrısı Read
Read
üzerine akıştan kullanılabilir veri yoksa yöntemi sıfır döndürür (akışın sonuna otomatik olarak ulaşılır). Bir uygulama, akışın sonuna ulaşılmasa bile istenenden daha az bayt döndürmek için ücretsizdir.
Temel veri türlerini okumak için kullanın BinaryReader .
Dikkat
parametresinde buffer
belirtilen bayt dizisi yöntemi tarafından GetBuffer döndürülen temel arabellekse, dizi içeriğinin üzerine yazılır ve özel durum atılmaz.