DeflateStream.Read DeflateStream.Read DeflateStream.Read DeflateStream.Read Method

Définition

Surcharges

Read(Span<Byte>) Read(Span<Byte>) Read(Span<Byte>) Read(Span<Byte>)

Lit une séquence d’octets à partir du flux Deflate actuel dans une étendue d’octets et avance la position dans le flux Deflate du nombre d’octets lus.Reads a sequence of bytes from the current Deflate stream into a byte span and advances the position within the Deflate stream by the number of bytes read.

Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32)

Lit un certain nombre d'octets décompressés dans le tableau d'octets spécifié.Reads a number of decompressed bytes into the specified byte array.

Read(Span<Byte>) Read(Span<Byte>) Read(Span<Byte>) Read(Span<Byte>)

Lit une séquence d’octets à partir du flux Deflate actuel dans une étendue d’octets et avance la position dans le flux Deflate du nombre d’octets lus.Reads a sequence of bytes from the current Deflate stream into a byte span and advances the position within the Deflate stream by the number of bytes read.

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

Paramètres

buffer
Span<Byte>

Région de la mémoire.A region of memory. Quand cette méthode est retournée, le contenu de cette région est remplacé par les octets lus dans la source actuelle.When this method returns, the contents of this region are replaced by the bytes read from the current source.

Retours

Nombre total d'octets lus dans la mémoire tampon.The total number of bytes read into the buffer. Le nombre d’octets peut être inférieur au nombre d’octets alloués dans la mémoire tampon si ce nombre d’octets n’est pas actuellement disponible, ou égal à zéro (0) si la fin du flux a été atteinte.This can be less than the number of bytes allocated in the buffer if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.

Remarques

Utilisez la CanRead propriété pour déterminer si l’instance actuelle prend en charge la lecture.Use the CanRead property to determine whether the current instance supports reading. Utilisez la ReadAsync méthode pour lire de façon asynchrone à partir du flux actuel.Use the ReadAsync method to read asynchronously from the current stream.

Cette méthode lit un nombre maximal buffer.Length d’octets dans le flux actuel et les stocke dans. bufferThis method read a maximum of buffer.Length bytes from the current stream and store them in buffer. La position actuelle dans le flux deflate est avancée du nombre d’octets lus ; Toutefois, si une exception se produit, la position actuelle dans le flux deflate reste inchangée.The current position within the Deflate stream is advanced by the number of bytes read; however, if an exception occurs, the current position within the Deflate stream remains unchanged. Cette méthode se bloque jusqu’à ce qu’au moins un octet de données puisse être lu, dans le cas où aucune donnée n’est disponible.This method will block until at least one byte of data can be read, in the event that no data is available. Readretourne 0 uniquement lorsqu’il n’y a plus de données dans le flux et qu’il n’y a plus de données attendues (par exemple, un socket fermé ou une fin de fichier).Read returns 0 only when there is no more data in the stream and no more is expected (such as a closed socket or end of file). La méthode est libre de retourner moins d’octets que la demande, même si la fin du flux n’a pas été atteinte.The method is free to return fewer bytes than requested even if the end of the stream has not been reached.

Utilisez BinaryReader pour lire les types de données primitifs.Use BinaryReader for reading primitive data types.

Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32)

Lit un certain nombre d'octets décompressés dans le tableau d'octets spécifié.Reads a number of decompressed bytes into the specified byte array.

public:
 override int Read(cli::array <System::Byte> ^ array, int offset, int count);
public override int Read (byte[] array, int offset, int count);
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (array As Byte(), offset As Integer, count As Integer) As Integer

Paramètres

array
Byte[]

Tableau utilisé pour stocker les octets décompressés.The array to store decompressed bytes.

offset
Int32 Int32 Int32 Int32

Dans array, décalage d'octet auquel les octets lus seront placés.The byte offset in array at which the read bytes will be placed.

count
Int32 Int32 Int32 Int32

Nombre maximal d'octets décompressés à lire.The maximum number of decompressed bytes to read.

Retours

Nombre d'octets qui ont été lus dans le tableau d'octets.The number of bytes that were read into the byte array.

Exceptions

La valeur CompressionMode était Compress quand l’objet a été créé.The CompressionMode value was Compress when the object was created.

- ou --or- Le flux sous-jacent ne prend pas en charge la lecture.The underlying stream does not support reading.

offset ou count est inférieur à zéro.offset or count is less than zero.

- ou --or- La longueur de array moins le point de départ de l’index est inférieure à count.array length minus the index starting point is less than count.

Le format des données n’est pas valide.The data is in an invalid format.

Exemples

L’exemple suivant montre comment compresser et décompresser les octets Read à Write l’aide des méthodes et.The following example shows how to compress and decompress bytes by using the Read and Write methods.

using System;
using System.Text;
using System.IO;
using System.IO.Compression;

namespace ExampleConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            UnicodeEncoding uniEncode = new UnicodeEncoding();

            byte[] bytesToCompress = uniEncode.GetBytes("example text to compress and decompress");
            Console.WriteLine("starting with: " + uniEncode.GetString(bytesToCompress));

            using (FileStream fileToCompress = File.Create("examplefile.gz"))
            {
                using (DeflateStream compressionStream = new DeflateStream(fileToCompress, CompressionMode.Compress))
                {
                    compressionStream.Write(bytesToCompress, 0, bytesToCompress.Length);
                }
            }

            byte[] decompressedBytes = new byte[bytesToCompress.Length];
            using (FileStream fileToDecompress = File.Open("examplefile.gz", FileMode.Open))
            {
                using (DeflateStream decompressionStream = new DeflateStream(fileToDecompress, CompressionMode.Decompress))
                {
                    decompressionStream.Read(decompressedBytes, 0, bytesToCompress.Length);
                }
            }
            
            Console.WriteLine("ending with: " + uniEncode.GetString(decompressedBytes));
        }
    }
}
Imports System.IO
Imports System.IO.Compression
Imports System.Text

Module Module1

    Sub Main()
        Dim uniEncode As UnicodeEncoding = New UnicodeEncoding()

        Dim bytesToCompress = uniEncode.GetBytes("example text to compress and decompress")
        Console.WriteLine("starting with: " + uniEncode.GetString(bytesToCompress))

        Using fileToCompress As FileStream = File.Create("examplefile.gz")
            Using compressionStream As DeflateStream = New DeflateStream(fileToCompress, CompressionMode.Compress)
                compressionStream.Write(bytesToCompress, 0, bytesToCompress.Length)
            End Using
        End Using

        Dim decompressedBytes(bytesToCompress.Length - 1) As Byte
        Using fileToDecompress As FileStream = File.Open("examplefile.gz", FileMode.Open)
            Using decompressionStream As DeflateStream = New DeflateStream(fileToDecompress, CompressionMode.Decompress)
                decompressionStream.Read(decompressedBytes, 0, bytesToCompress.Length)
            End Using
        End Using

        Console.WriteLine("ending with: " + uniEncode.GetString(decompressedBytes))
    End Sub
End Module

S’applique à