MemoryStream.Read Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
Read(Span<Byte>) |
Odczytuje sekwencję bajtów z bieżącego strumienia pamięci i rozwija pozycję w strumieniu pamięci o liczbę odczytanych bajtów. |
Read(Byte[], Int32, Int32) |
Odczytuje blok bajtów z bieżącego strumienia i zapisuje dane w buforze. |
Read(Span<Byte>)
- Źródło:
- MemoryStream.cs
- Źródło:
- MemoryStream.cs
- Źródło:
- MemoryStream.cs
Odczytuje sekwencję bajtów z bieżącego strumienia pamięci i rozwija pozycję w strumieniu pamięci o liczbę odczytanych bajtów.
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
Parametry
Region pamięci. Gdy ta metoda zwróci wartość, zawartość tego zakresu jest zastępowana przez bajty odczytane ze źródła bieżącego strumienia pamięci.
Zwraca
Całkowita liczba bajtów odczytanych do buforu. Może to być mniej niż liczba bajtów przydzielonych w buforze, jeśli liczba bajtów nie jest obecnie dostępna lub zero (0), jeśli osiągnięto koniec strumienia pamięci.
Dotyczy
Read(Byte[], Int32, Int32)
- Źródło:
- MemoryStream.cs
- Źródło:
- MemoryStream.cs
- Źródło:
- MemoryStream.cs
Odczytuje blok bajtów z bieżącego strumienia i zapisuje dane w buforze.
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
Parametry
- buffer
- Byte[]
Gdy ta metoda zwraca wartość , zawiera określoną tablicę bajtów z wartościami między offset
i (offset
+ count
- 1) zastąpionymi znakami odczytywanymi z bieżącego strumienia.
- offset
- Int32
Przesunięcie bajtów na podstawie zera, w buffer
którym rozpocznie się przechowywanie danych z bieżącego strumienia.
- count
- Int32
Maksymalna liczba bajtów do odczytania.
Zwraca
Całkowita liczba bajtów zapisanych w buforze. Może to być mniejsze niż liczba bajtów żądanych, jeśli liczba bajtów nie jest obecnie dostępna, lub zero, jeśli koniec strumienia zostanie osiągnięty przed odczytaniem jakichkolwiek bajtów.
Wyjątki
buffer
to null
.
offset
lub count
jest ujemny.
offset
odejmowany od długości buforu jest mniejszy niż count
.
Bieżące wystąpienie strumienia jest zamknięte.
Przykłady
Ten przykład kodu jest częścią większego przykładu podanego MemoryStream dla klasy.
// 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)
Uwagi
Ta metoda zastępuje Read.
Parametr offset
daje przesunięcie pierwszego bajtu, w buffer
którym są zapisywane dane z bieżącego strumienia. Parametr count
daje maksymalną liczbę bajtów do odczytu z bieżącego strumienia. Zwracana wartość to rzeczywista liczba odczytanych bajtów lub zero, jeśli osiągnięto koniec strumienia.
Jeśli operacja odczytu zakończy się pomyślnie, bieżąca pozycja w strumieniu przechodzi przez liczbę odczytanych bajtów. Jeśli wystąpi wyjątek, bieżąca pozycja w strumieniu pozostaje niezmieniona.
Metoda Read
zwróci zero tylko wtedy, gdy osiągnięto koniec strumienia. We wszystkich innych przypadkach Read
zawsze odczytuje co najmniej jeden bajt ze strumienia przed zwróceniem. Z definicji, jeśli żadne dane nie są dostępne ze strumienia po wywołaniu metody Read
, Read
metoda zwraca zero (koniec strumienia jest osiągany automatycznie). Implementacja jest bezpłatna, aby zwrócić mniej bajtów niż żądano, nawet jeśli koniec strumienia nie został osiągnięty.
Służy BinaryReader do odczytywania typów danych pierwotnych.
Przestroga
Jeśli tablica bajtów określona w parametrze buffer
jest buforem bazowym zwracanym przez metodę GetBuffer , zawartość tablicy zostanie zastąpiona i nie zostanie zgłoszony żaden wyjątek.