GZipStream.Write GZipStream.Write GZipStream.Write GZipStream.Write Method

Определение

Перегрузки

Write(ReadOnlySpan<Byte>) Write(ReadOnlySpan<Byte>) Write(ReadOnlySpan<Byte>) Write(ReadOnlySpan<Byte>)

Записывает последовательность байтов в текущий поток GZip из диапазона байтов только для чтения и перемещает текущую позицию внутри потока GZip на число записанных байтов.Writes a sequence of bytes to the current GZip stream from a read-only byte span and advances the current position within this GZip stream by the number of bytes written.

Write(Byte[], Int32, Int32) Write(Byte[], Int32, Int32) Write(Byte[], Int32, Int32) Write(Byte[], Int32, Int32)

Записывает сжатые байты в основной поток GZip из указанного массива байтов.Writes compressed bytes to the underlying GZip stream from the specified byte array.

Write(ReadOnlySpan<Byte>) Write(ReadOnlySpan<Byte>) Write(ReadOnlySpan<Byte>) Write(ReadOnlySpan<Byte>)

Записывает последовательность байтов в текущий поток GZip из диапазона байтов только для чтения и перемещает текущую позицию внутри потока GZip на число записанных байтов.Writes a sequence of bytes to the current GZip stream from a read-only byte span and advances the current position within this GZip stream by the number of bytes written.

public:
 override void Write(ReadOnlySpan<System::Byte> buffer);
public override void Write (ReadOnlySpan<byte> buffer);
override this.Write : ReadOnlySpan<byte> -> unit
Public Overrides Sub Write (buffer As ReadOnlySpan(Of Byte))

Параметры

buffer
ReadOnlySpan<Byte>

Область памяти.A region of memory. Этот метод копирует содержимое данной области в текущий поток GZip.This method copies the contents of this region to the current GZip stream.

Комментарии

Используйте свойство CanWrite , чтобы определить, поддерживает ли текущий экземпляр запись.Use the CanWrite property to determine whether the current instance supports writing. WriteAsync Используйте метод для асинхронной записи в текущий поток.Use the WriteAsync method to write asynchronously to the current stream.

Если операция записи выполнена успешно, то позицию в потоке GZip увеличивается на число записанных байтов.If the write operation is successful, the position within the GZip stream advances by the number of bytes written. При возникновении исключения расположение в потоке GZip остается неизменным.If an exception occurs, the position within the GZip stream remains unchanged.

Write(Byte[], Int32, Int32) Write(Byte[], Int32, Int32) Write(Byte[], Int32, Int32) Write(Byte[], Int32, Int32)

Записывает сжатые байты в основной поток GZip из указанного массива байтов.Writes compressed bytes to the underlying GZip stream from the specified byte array.

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

Параметры

array
Byte[]

Буфер, содержащий данные для сжатия.The buffer that contains the data to compress.

offset
Int32 Int32 Int32 Int32

Смещение байтов в array, из которого будут считываться байты.The byte offset in array from which the bytes will be read.

count
Int32 Int32 Int32 Int32

Максимальное число байтов для записи.The maximum number of bytes to write.

Исключения

Операция записи не может быть выполнена, поскольку поток закрыт.The write operation cannot be performed because the stream is closed.

Примеры

В следующем примере показано, как сжимать и распаковывать байты с помощью Read методов и. WriteThe 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 (GZipStream compressionStream = new GZipStream(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 (GZipStream decompressionStream = new GZipStream(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 GZipStream = New GZipStream(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 GZipStream = New GZipStream(fileToDecompress, CompressionMode.Decompress)
                decompressionStream.Read(decompressedBytes, 0, bytesToCompress.Length)
            End Using
        End Using

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

Комментарии

Операция записи может не выполняться немедленно, но буферизована до достижения размера буфера или до Flush вызова метода или. CloseThe write operation might not occur immediately but is buffered until the buffer size is reached or until the Flush or Close method is called.

Применяется к