BufferedStream.Read Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
| Nom | Description |
|---|---|
| Read(Span<Byte>) |
Copie les octets du flux mis en mémoire tampon actuelle vers une étendue d’octets et avance la position dans le flux mis en mémoire tampon par le nombre d’octets lus. |
| Read(Byte[], Int32, Int32) |
Copie les octets du flux mis en mémoire tampon actuelle dans un tableau. |
Read(Span<Byte>)
- Source:
- BufferedStream.cs
- Source:
- BufferedStream.cs
- Source:
- BufferedStream.cs
- Source:
- BufferedStream.cs
- Source:
- BufferedStream.cs
Copie les octets du flux mis en mémoire tampon actuelle vers une étendue d’octets et avance la position dans le flux mis en mémoire tampon par le nombre d’octets lus.
public:
override int Read(Span<System::Byte> destination);
public override int Read(Span<byte> destination);
override this.Read : Span<byte> -> int
Public Overrides Function Read (destination As Span(Of Byte)) As Integer
Paramètres
Une région de mémoire. Lorsque cette méthode est retournée, le contenu de cette région est remplacé par les octets lus à partir de la source actuelle.
Retours
Nombre total d’octets lus dans la mémoire tampon. Cela peut être inférieur au nombre d’octets alloués dans la mémoire tampon si de nombreux octets ne sont pas actuellement disponibles, ou zéro (0) si la fin du flux a été atteinte.
Remarques
Utilisez la CanRead propriété pour déterminer si l’instance actuelle prend en charge la lecture. Utilisez la ReadAsync méthode pour lire de manière asynchrone à partir du flux actuel.
Les implémentations de cette méthode lisent un maximum d’octets buffer.Length à partir du flux actuel et les stockent dans buffer. La position actuelle dans le flux est avancée par le nombre d’octets lus ; Toutefois, si une exception se produit, la position actuelle dans le flux reste inchangée. Les implémentations retournent le nombre d’octets lus. L’implémentation bloque jusqu’à ce qu’au moins un octet de données puisse être lu, en cas d’absence de données disponibles.
Read retourne 0 uniquement lorsqu’il n’y a plus de données dans le flux et qu’il n’en est plus attendu (par exemple, un socket fermé ou une fin de fichier). Une implémentation est libre de retourner moins d’octets que demandés même si la fin du flux n’a pas été atteinte.
Permet BinaryReader de lire les types de données primitifs.
S’applique à
Read(Byte[], Int32, Int32)
- Source:
- BufferedStream.cs
- Source:
- BufferedStream.cs
- Source:
- BufferedStream.cs
- Source:
- BufferedStream.cs
- Source:
- BufferedStream.cs
Copie les octets du flux mis en mémoire tampon actuelle dans un tableau.
public:
override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public:
override int Read(cli::array <System::Byte> ^ array, int offset, int count);
public override int Read(byte[] buffer, int offset, int count);
public override int Read(byte[] array, int offset, int count);
override this.Read : byte[] * int * int -> int
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer
Public Overrides Function Read (array As Byte(), offset As Integer, count As Integer) As Integer
Paramètres
- bufferarray
- Byte[]
- offset
- Int32
Décalage d’octet dans la mémoire tampon à partir duquel commencer la lecture d’octets.
- count
- Int32
Nombre d’octets à lire.
Retours
Nombre total d’octets lus en array. Cela peut être inférieur au nombre d’octets demandé si de nombreux octets ne sont pas actuellement disponibles, ou 0 si la fin du flux a été atteinte avant que toutes les données puissent être lues.
Exceptions
La longueur de array moins offset est inférieure à count.
array a la valeur null.
offset ou count est négatif.
Le flux n’est pas ouvert ou n’est nullpas .
Le flux ne prend pas en charge la lecture.
Les méthodes ont été appelées après la fermeture du flux.
Exemples
Cet exemple de code fait partie d’un exemple plus grand fourni pour la BufferedStream classe.
// Receive data using the BufferedStream.
Console.WriteLine("Receiving data using BufferedStream.");
bytesReceived = 0;
startTime = DateTime.Now;
int numBytesToRead = receivedData.Length;
while (numBytesToRead > 0)
{
// Read may return anything from 0 to numBytesToRead.
int n = bufStream.Read(receivedData,0, receivedData.Length);
// The end of the file is reached.
if (n == 0)
break;
bytesReceived += n;
numBytesToRead -= n;
}
bufferedTime = (DateTime.Now - startTime).TotalSeconds;
Console.WriteLine("{0} bytes received in {1} seconds.\n",
bytesReceived.ToString(),
bufferedTime.ToString("F1"));
// Receive data using the BufferedStream.
printfn "Receiving data using BufferedStream."
bytesReceived <- 0
let startTime = DateTime.Now
let mutable numBytesToRead = receivedData.Length
let mutable broken = false
while not broken && numBytesToRead > 0 do
// Read may return anything from 0 to numBytesToRead.
let n = bufStream.Read(receivedData,0, receivedData.Length)
// The end of the file is reached.
if n = 0 then
broken <- true
else
bytesReceived <- bytesReceived + n
numBytesToRead <- numBytesToRead - n
let bufferedTime = (DateTime.Now - startTime).TotalSeconds
printfn $"{bytesReceived} bytes received in {bufferedTime:F1} seconds.\n"
' Receive data using the BufferedStream.
Console.WriteLine("Receiving data using BufferedStream.")
bytesReceived = 0
startTime = DateTime.Now
Dim numBytesToRead As Integer = receivedData.Length
Dim n As Integer
Do While numBytesToRead > 0
'Read my return anything from 0 to numBytesToRead
n = bufStream.Read(receivedData, 0, receivedData.Length)
'The end of the file is reached.
If n = 0 Then
Exit Do
End If
bytesReceived += n
numBytesToRead -= n
Loop
bufferedTime = DateTime.Now.Subtract(startTime).TotalSeconds
Console.WriteLine("{0} bytes received in {1} " & _
"seconds." & vbCrLf, _
bytesReceived.ToString(), _
bufferedTime.ToString("F1"))
Remarques
La Read méthode retourne 0 uniquement si la fin du flux est atteinte. Dans tous les autres cas, Read lit toujours au moins un octet du flux avant de retourner. Par définition, si aucune donnée n’est disponible à partir du flux lors d’un appel, Readla Read méthode retourne 0 (la fin du flux est atteinte automatiquement). Une implémentation est libre de retourner moins d’octets que demandés même si la fin du flux n’a pas été atteinte.
Permet BinaryReader de lire les types de données primitifs.
Voir aussi
- BlockCopy(Array, Int32, Array, Int32, Int32)
- CanRead
- Write(Byte[], Int32, Int32)
- E/S de fichier et de flux
- Guide pratique pour lire du texte à partir d’un fichier
- Guide pratique pour écrire du texte dans un fichier