MemoryStream.Read Metoda

Definicja

Przeciążenia

Nazwa Opis
Read(Span<Byte>)

Odczytuje sekwencję bajtów z bieżącego strumienia pamięci i rozwija pozycję w strumieniu pamięci przez 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
Ź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 przez liczbę odczytanych bajtów.

public:
 override int Read(Span<System::Byte> buffer);
public:
 override int Read(Span<System::Byte> destination);
public override int Read(Span<byte> buffer);
public override int Read(Span<byte> destination);
override this.Read : Span<byte> -> int
override this.Read : Span<byte> -> int
Public Overrides Function Read (buffer As Span(Of Byte)) As Integer
Public Overrides Function Read (destination As Span(Of Byte)) As Integer

Parametry

destinationbuffer
Span<Byte>

Region pamięci. Gdy ta metoda zwraca, 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
Ź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, zawiera określoną tablicę bajtów z wartościami między offset i (offset + count - 1) zastąpionymi znakami odczytanymi z bieżącego strumienia.

offset
Int32

Przesunięcie bajtów na podstawie zera, w buffer którym ma rozpocząć 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

Parametr buffer ma wartość null.

offset lub count jest ujemny.

offset odjęcie od długości buforu jest mniejsze niż count.

Bieżące wystąpienie strumienia jest zamknięte.

Przykłady

Ten przykład kodu jest częścią większego przykładu udostępnionego dla klasy MemoryStream.

// 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 metodę 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żące położenie w strumieniu jest zwiększane o liczbę odczytanych bajtów. Jeśli wystąpi wyjątek, bieżące położenie w strumieniu pozostanie niezmienione.

Read Metoda 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 zwracać 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.

Caution

Jeśli tablica bajtów określona w parametrze buffer jest buforem bazowym zwracanym przez GetBuffer metodę, zawartość tablicy jest zastępowana i nie jest zgłaszany żaden wyjątek.

Zobacz też

Dotyczy