다음을 통해 공유


GZipStream 생성자

정의

GZipStream 클래스의 새 인스턴스를 초기화합니다.

오버로드

GZipStream(Stream, CompressionLevel)

지정된 스트림 및 압축 수준을 사용하여 GZipStream 클래스의 새 인스턴스를 초기화합니다.

GZipStream(Stream, CompressionMode)

지정된 스트림 및 압축 모드를 사용하여 GZipStream 클래스의 새 인스턴스를 초기화합니다.

GZipStream(Stream, CompressionLevel, Boolean)

지정된 스트림 및 압축 수준을 사용하여 GZipStream 클래스의 새 인스턴스를 초기화하고 필요에 따라 스트림을 열어 둡니다.

GZipStream(Stream, CompressionMode, Boolean)

지정된 스트림 및 압축 모드를 사용하여 GZipStream 클래스의 새 인스턴스를 초기화하고 필요에 따라 스트림을 열어 둡니다.

GZipStream(Stream, ZLibCompressionOptions, Boolean)

지정된 스트림, 압축 옵션을 사용하여 GZipStream 클래스의 새 인스턴스를 초기화하고 필요에 따라 스트림을 열어 둡니다.

GZipStream(Stream, CompressionLevel)

Source:
GZipStream.cs
Source:
GZipStream.cs
Source:
GZipStream.cs

지정된 스트림 및 압축 수준을 사용하여 GZipStream 클래스의 새 인스턴스를 초기화합니다.

public:
 GZipStream(System::IO::Stream ^ stream, System::IO::Compression::CompressionLevel compressionLevel);
public GZipStream (System.IO.Stream stream, System.IO.Compression.CompressionLevel compressionLevel);
new System.IO.Compression.GZipStream : System.IO.Stream * System.IO.Compression.CompressionLevel -> System.IO.Compression.GZipStream
Public Sub New (stream As Stream, compressionLevel As CompressionLevel)

매개 변수

stream
Stream

압축된 데이터가 기록되는 스트림입니다.

compressionLevel
CompressionLevel

데이터를 스트림으로 압축할 때 속도 또는 압축 효율성을 강조할지 여부를 나타내는 열거형 값 중 하나입니다.

예외

stream null.

스트림은 압축과 같은 쓰기 작업을 지원하지 않습니다. (스트림 개체의 CanWrite 속성은 false.)

설명

압축 효율성 또는 속도가 GZipStream 클래스의 인스턴스에 더 중요한지 여부를 지정하려는 경우 이 생성자를 사용합니다.

이 생성자 오버로드는 압축 모드 Compress사용합니다. 압축 모드를 다른 값으로 설정하려면 GZipStream(Stream, CompressionMode) 또는 GZipStream(Stream, CompressionMode, Boolean) 오버로드를 사용합니다.

적용 대상

GZipStream(Stream, CompressionMode)

Source:
GZipStream.cs
Source:
GZipStream.cs
Source:
GZipStream.cs

지정된 스트림 및 압축 모드를 사용하여 GZipStream 클래스의 새 인스턴스를 초기화합니다.

public:
 GZipStream(System::IO::Stream ^ stream, System::IO::Compression::CompressionMode mode);
public GZipStream (System.IO.Stream stream, System.IO.Compression.CompressionMode mode);
new System.IO.Compression.GZipStream : System.IO.Stream * System.IO.Compression.CompressionMode -> System.IO.Compression.GZipStream
Public Sub New (stream As Stream, mode As CompressionMode)

매개 변수

stream
Stream

압축된 데이터가 기록되거나 압축을 풉니다.

mode
CompressionMode

스트림으로 데이터를 압축할지 아니면 스트림에서 데이터를 압축 해제할지를 나타내는 열거형 값 중 하나입니다.

예외

stream null.

mode 유효한 CompressionMode 열거형 값이 아닙니다.

-또는-

CompressionMode Compress CanWrite false.

-또는-

CompressionMode Decompress CanRead false.

예제

다음 예제에서는 GZipStream 개체를 만들 때 압축 모드를 설정하는 방법을 보여줍니다.

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

public class FileCompressionModeExample
{
    private const string Message = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
    private const string OriginalFileName = "original.txt";
    private const string CompressedFileName = "compressed.gz";
    private const string DecompressedFileName = "decompressed.txt";

    public static void Run()
    {
        CreateFileToCompress();
        CompressFile();
        DecompressFile();
        PrintResults();
        DeleteFiles();

        /*
         Output:

            The original file 'original.txt' is 445 bytes. Contents: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

            The compressed file 'compressed.gz' is 283 bytes.

            The decompressed file 'decompressed.txt' is 445 bytes. Contents: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
         */
    }

    private static void CreateFileToCompress() => File.WriteAllText(OriginalFileName, Message);

    private static void CompressFile()
    {
        using FileStream originalFileStream = File.Open(OriginalFileName, FileMode.Open);
        using FileStream compressedFileStream = File.Create(CompressedFileName);
        using var compressor = new GZipStream(compressedFileStream, CompressionMode.Compress);
        originalFileStream.CopyTo(compressor);
    }

    private static void DecompressFile()
    {
        using FileStream compressedFileStream = File.Open(CompressedFileName, FileMode.Open);
        using FileStream outputFileStream = File.Create(DecompressedFileName);
        using var decompressor = new GZipStream(compressedFileStream, CompressionMode.Decompress);
        decompressor.CopyTo(outputFileStream);
    }

    private static void PrintResults()
    {
        long originalSize = new FileInfo(OriginalFileName).Length;
        long compressedSize = new FileInfo(CompressedFileName).Length;
        long decompressedSize = new FileInfo(DecompressedFileName).Length;

        Console.WriteLine($"The original file '{OriginalFileName}' is {originalSize} bytes. Contents: \"{File.ReadAllText(OriginalFileName)}\"");
        Console.WriteLine($"The compressed file '{CompressedFileName}' is {compressedSize} bytes.");
        Console.WriteLine($"The decompressed file '{DecompressedFileName}' is {decompressedSize} bytes. Contents: \"{File.ReadAllText(DecompressedFileName)}\"");
    }

    private static void DeleteFiles()
    {
        File.Delete(OriginalFileName);
        File.Delete(CompressedFileName);
        File.Delete(DecompressedFileName);
    }
}
open System.IO
open System.IO.Compression

let message =
    "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

let OriginalFileName = "original.txt"
let CompressedFileName = "compressed.gz"
let DecompressedFileName = "decompressed.txt"

let createFileToCompress () =
    File.WriteAllText(OriginalFileName, message)

let compressFile () =
    use originalFileStream = File.Open(OriginalFileName, FileMode.Open)
    use compressedFileStream = File.Create CompressedFileName
    use compressor = new GZipStream(compressedFileStream, CompressionMode.Compress)
    originalFileStream.CopyTo compressor

let decompressFile () =
    use compressedFileStream = File.Open(CompressedFileName, FileMode.Open)
    use outputFileStream = File.Create DecompressedFileName
    use decompressor = new GZipStream(compressedFileStream, CompressionMode.Decompress)
    decompressor.CopyTo outputFileStream

let printResults () =
    let originalSize = FileInfo(OriginalFileName).Length
    let compressedSize = FileInfo(CompressedFileName).Length
    let decompressedSize = FileInfo(DecompressedFileName).Length

    printfn
        $"The original file '{OriginalFileName}' weighs {originalSize} bytes. Contents: \"{File.ReadAllText OriginalFileName}\""

    printfn $"The compressed file '{CompressedFileName}' weighs {compressedSize} bytes."

    printfn
        $"The decompressed file '{DecompressedFileName}' weighs {decompressedSize} bytes. Contents: \"{File.ReadAllText DecompressedFileName}\""

let deleteFiles () =
    File.Delete OriginalFileName
    File.Delete CompressedFileName
    File.Delete DecompressedFileName

createFileToCompress ()
compressFile ()
decompressFile ()
printResults ()
deleteFiles ()

// Output:
//     The original file 'original.txt' weighs 445 bytes. Contents: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
//
//     The compressed file 'compressed.gz' weighs 283 bytes.
//
//     The decompressed file 'decompressed.txt' weighs 445 bytes. Contents: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
Imports System
Imports System.IO
Imports System.IO.Compression

Public Class FileCompressionModeExample
    Private Const Message As String = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
    Private Const OriginalFileName As String = "original.txt"
    Private Const CompressedFileName As String = "compressed.gz"
    Private Const DecompressedFileName As String = "decompressed.txt"

    Public Shared Sub Main()
        CreateFileToCompress()
        CompressFile()
        DecompressFile()
        PrintResults()
        DeleteFiles()

        ' Output:
        '   The original file 'original.txt' weighs 445 bytes. Contents: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

        '   The compressed file 'compressed.gz' weighs 283 bytes.

        '   The decompressed file 'decompressed.txt' weighs 445 bytes. Contents: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
    End Sub

    Private Shared Sub CreateFileToCompress()
        File.WriteAllText(OriginalFileName, Message)
    End Sub

    Private Shared Sub CompressFile()
        Using originalFileStream As FileStream = File.Open(OriginalFileName, FileMode.Open)
            Using compressedFileStream As FileStream = File.Create(CompressedFileName)
                Using compressor = New GZipStream(compressedFileStream, CompressionMode.Compress)
                    originalFileStream.CopyTo(compressor)
                End Using
            End Using
        End Using
    End Sub

    Private Shared Sub DecompressFile()
        Using compressedFileStream As FileStream = File.Open(CompressedFileName, FileMode.Open)
            Using outputFileStream As FileStream = File.Create(DecompressedFileName)
                Using decompressor = New GZipStream(compressedFileStream, CompressionMode.Decompress)
                    decompressor.CopyTo(outputFileStream)
                End Using
            End Using
        End Using
    End Sub

    Private Shared Sub PrintResults()
        Dim originalSize As Long = New FileInfo(OriginalFileName).Length
        Dim compressedSize As Long = New FileInfo(CompressedFileName).Length
        Dim decompressedSize As Long = New FileInfo(DecompressedFileName).Length

        Console.WriteLine($"The original file '{OriginalFileName}' weighs {originalSize} bytes. Contents: ""{File.ReadAllText(OriginalFileName)}""")
        Console.WriteLine($"The compressed file '{CompressedFileName}' weighs {compressedSize} bytes.")
        Console.WriteLine($"The decompressed file '{DecompressedFileName}' weighs {decompressedSize} bytes. Contents: ""{File.ReadAllText(DecompressedFileName)}""")
    End Sub

    Private Shared Sub DeleteFiles()
        File.Delete(OriginalFileName)
        File.Delete(CompressedFileName)
        File.Delete(DecompressedFileName)
    End Sub
End Class

설명

기본적으로 GZipStream 기본 스트림을 소유하므로 stream 매개 변수를 닫으면 기본 스트림도 닫힙니다. 기본 스트림의 상태는 스트림의 유용성에 영향을 줄 수 있습니다. 또한 명시적 검사가 수행되지 않으므로 새 인스턴스를 만들 때 추가 예외가 throw되지 않습니다.

GZipStream 클래스의 인스턴스가 Compress 같은 mode 매개 변수를 사용하여 만들어지고 추가 작업이 발생하지 않으면 스트림이 유효한 빈 압축 파일로 표시됩니다.

기본적으로 압축 모드가 Compress때 압축 수준은 Optimal 설정됩니다.

적용 대상

GZipStream(Stream, CompressionLevel, Boolean)

Source:
GZipStream.cs
Source:
GZipStream.cs
Source:
GZipStream.cs

지정된 스트림 및 압축 수준을 사용하여 GZipStream 클래스의 새 인스턴스를 초기화하고 필요에 따라 스트림을 열어 둡니다.

public:
 GZipStream(System::IO::Stream ^ stream, System::IO::Compression::CompressionLevel compressionLevel, bool leaveOpen);
public GZipStream (System.IO.Stream stream, System.IO.Compression.CompressionLevel compressionLevel, bool leaveOpen);
new System.IO.Compression.GZipStream : System.IO.Stream * System.IO.Compression.CompressionLevel * bool -> System.IO.Compression.GZipStream
Public Sub New (stream As Stream, compressionLevel As CompressionLevel, leaveOpen As Boolean)

매개 변수

stream
Stream

압축된 데이터가 기록되는 스트림입니다.

compressionLevel
CompressionLevel

데이터를 스트림으로 압축할 때 속도 또는 압축 효율성을 강조할지 여부를 나타내는 열거형 값 중 하나입니다.

leaveOpen
Boolean

GZipStream 개체를 삭제한 후 스트림 개체를 열어 두도록 true. 그렇지 않으면 false.

예외

stream null.

스트림은 압축과 같은 쓰기 작업을 지원하지 않습니다. (스트림 개체의 CanWrite 속성은 false.)

예제

다음 예제에서는 GZipStream 개체를 만들 때 압축 수준을 설정하는 방법과 스트림을 열어 두는 방법을 보여줍니다.

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

public static class MemoryWriteReadExample
{
    private const string Message = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
    private static readonly byte[] s_messageBytes = Encoding.ASCII.GetBytes(Message);

    public static void Run()
    {
        Console.WriteLine($"The original string length is {s_messageBytes.Length} bytes.");
        using var stream = new MemoryStream();
        CompressBytesToStream(stream);
        Console.WriteLine($"The compressed stream length is {stream.Length} bytes.");
        int decompressedLength = DecompressStreamToBytes(stream);
        Console.WriteLine($"The decompressed string length is {decompressedLength} bytes, same as the original length.");
        /*
         Output:
            The original string length is 445 bytes.
            The compressed stream length is 282 bytes.
            The decompressed string length is 445 bytes, same as the original length.
        */
    }

    private static void CompressBytesToStream(Stream stream)
    {
        using var compressor = new GZipStream(stream, CompressionLevel.SmallestSize, leaveOpen: true);
        compressor.Write(s_messageBytes, 0, s_messageBytes.Length);
    }

    private static int DecompressStreamToBytes(Stream stream)
    {
        stream.Position = 0;
        int bufferSize = 512;
        byte[] buffer = new byte[bufferSize];
        using var gzipStream = new GZipStream(stream, CompressionMode.Decompress);

        int totalRead = 0;
        while (totalRead < buffer.Length)
        {
            int bytesRead = gzipStream.Read(buffer.AsSpan(totalRead));
            if (bytesRead == 0) break;
            totalRead += bytesRead;
        }

        return totalRead;
    }
}
open System.IO
open System.IO.Compression
open System.Text

let message =
    "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

let s_messageBytes = Encoding.ASCII.GetBytes message

let compressBytesToStream stream =
    use compressor =
        new GZipStream(stream, CompressionLevel.SmallestSize, leaveOpen = true)

    compressor.Write(s_messageBytes, 0, s_messageBytes.Length)

let decompressStreamToBytes (stream: Stream) =
    stream.Position <- 0
    let bufferSize = 512
    let decompressedBytes = Array.zeroCreate bufferSize
    use decompressor = new GZipStream(stream, CompressionMode.Decompress)
    decompressor.Read(decompressedBytes, 0, bufferSize)

[<EntryPoint>]
let main _ =
    printfn $"The original string length is {s_messageBytes.Length} bytes."
    use stream = new MemoryStream()
    compressBytesToStream stream
    printfn $"The compressed stream length is {stream.Length} bytes."
    let decompressedLength = decompressStreamToBytes stream
    printfn $"The decompressed string length is {decompressedLength} bytes, same as the original length."
    0

// Output:
//     The original string length is 445 bytes.
//     The compressed stream length is 282 bytes.
//     The decompressed string length is 445 bytes, same as the original length.
Imports System.IO
Imports System.IO.Compression
Imports System.Text

Module MemoryWriteReadExample
    Private Const Message As String = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
    Private ReadOnly s_messageBytes As Byte() = Encoding.ASCII.GetBytes(Message)

    Sub Main()
        Console.WriteLine($"The original string length is {s_messageBytes.Length} bytes.")

        Using stream = New MemoryStream()
            CompressBytesToStream(stream)
            Console.WriteLine($"The compressed stream length is {stream.Length} bytes.")
            Dim decompressedLength As Integer = DecompressStreamToBytes(stream)
            Console.WriteLine($"The decompressed string length is {decompressedLength} bytes, same as the original length.")
        End Using
        ' Output:
        '   The original string length is 445 bytes.
        '   The compressed stream length is 282 bytes.
        '   The decompressed string length is 445 bytes, same as the original length.
    End Sub

    Private Sub CompressBytesToStream(ByVal stream As Stream)
        Using compressor = New GZipStream(stream, CompressionLevel.SmallestSize, leaveOpen:=True)
            compressor.Write(s_messageBytes, 0, s_messageBytes.Length)
        End Using
    End Sub

    Private Function DecompressStreamToBytes(ByVal stream As Stream) As Integer
        stream.Position = 0
        Dim bufferSize As Integer = 512
        Dim decompressedBytes As Byte() = New Byte(bufferSize - 1) {}
        Using decompressor = New GZipStream(stream, CompressionMode.Decompress)
            Dim length As Integer = decompressor.Read(decompressedBytes, 0, bufferSize)
            Return length
        End Using
    End Function
End Module

설명

압축 효율성 또는 속도가 GZipStream 클래스 인스턴스에 더 중요한지 여부와 GZipStream 개체를 삭제한 후 스트림 개체를 열어 둘지 여부를 지정하려는 경우 이 생성자를 사용합니다.

이 생성자 오버로드는 압축 모드 Compress사용합니다. 압축 모드를 다른 값으로 설정하려면 GZipStream(Stream, CompressionMode) 또는 GZipStream(Stream, CompressionMode, Boolean) 오버로드를 사용합니다.

적용 대상

GZipStream(Stream, CompressionMode, Boolean)

Source:
GZipStream.cs
Source:
GZipStream.cs
Source:
GZipStream.cs

지정된 스트림 및 압축 모드를 사용하여 GZipStream 클래스의 새 인스턴스를 초기화하고 필요에 따라 스트림을 열어 둡니다.

public:
 GZipStream(System::IO::Stream ^ stream, System::IO::Compression::CompressionMode mode, bool leaveOpen);
public GZipStream (System.IO.Stream stream, System.IO.Compression.CompressionMode mode, bool leaveOpen);
new System.IO.Compression.GZipStream : System.IO.Stream * System.IO.Compression.CompressionMode * bool -> System.IO.Compression.GZipStream
Public Sub New (stream As Stream, mode As CompressionMode, leaveOpen As Boolean)

매개 변수

stream
Stream

압축된 데이터가 기록되거나 압축을 풉니다.

mode
CompressionMode

스트림으로 데이터를 압축할지 아니면 스트림에서 데이터를 압축 해제할지를 나타내는 열거형 값 중 하나입니다.

leaveOpen
Boolean

GZipStream 개체를 삭제한 후 스트림을 열어 두는 true. 그렇지 않으면 false.

예외

stream null.

mode 유효한 CompressionMode 값이 아닙니다.

-또는-

CompressionMode Compress CanWrite false.

-또는-

CompressionMode Decompress CanRead false.

설명

기본적으로 GZipStream 기본 스트림을 소유하므로 stream 매개 변수를 닫으면 기본 스트림도 닫힙니다. 기본 스트림의 상태는 스트림의 유용성에 영향을 줄 수 있습니다. 또한 명시적 검사가 수행되지 않으므로 새 인스턴스를 만들 때 추가 예외가 throw되지 않습니다.

GZipStream 클래스의 인스턴스가 Compress 같은 mode 매개 변수를 사용하여 만들어지고 추가 작업이 발생하지 않으면 스트림이 유효한 빈 압축 파일로 표시됩니다.

기본적으로 압축 모드가 Compress때 압축 수준은 Optimal 설정됩니다.

적용 대상

GZipStream(Stream, ZLibCompressionOptions, Boolean)

지정된 스트림, 압축 옵션을 사용하여 GZipStream 클래스의 새 인스턴스를 초기화하고 필요에 따라 스트림을 열어 둡니다.

public GZipStream (System.IO.Stream stream, System.IO.Compression.ZLibCompressionOptions compressionOptions, bool leaveOpen = false);
new System.IO.Compression.GZipStream : System.IO.Stream * System.IO.Compression.ZLibCompressionOptions * bool -> System.IO.Compression.GZipStream
Public Sub New (stream As Stream, compressionOptions As ZLibCompressionOptions, Optional leaveOpen As Boolean = false)

매개 변수

stream
Stream

압축된 데이터가 기록되는 스트림입니다.

compressionOptions
ZLibCompressionOptions

압축 스트림을 미세 조정하는 옵션입니다.

leaveOpen
Boolean

GZipStream 개체를 삭제한 후 스트림 개체를 열어 두도록 true. 그렇지 않으면 false.

예외

stream 또는 compressionOptionsnull.

적용 대상