GZipStream Konstruktory
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Inicjuje nowe wystąpienie klasy GZipStream.
Przeciążenia
GZipStream(Stream, CompressionLevel) |
Inicjuje nowe wystąpienie klasy GZipStream przy użyciu określonego strumienia i poziomu kompresji. |
GZipStream(Stream, CompressionMode) |
Inicjuje nowe wystąpienie klasy GZipStream przy użyciu określonego strumienia i trybu kompresji. |
GZipStream(Stream, CompressionLevel, Boolean) |
Inicjuje nowe wystąpienie klasy GZipStream przy użyciu określonego strumienia i poziomu kompresji, a opcjonalnie pozostawia otwarty strumień. |
GZipStream(Stream, CompressionMode, Boolean) |
Inicjuje nowe wystąpienie klasy GZipStream przy użyciu określonego strumienia i trybu kompresji, a opcjonalnie pozostawia otwarty strumień. |
GZipStream(Stream, ZLibCompressionOptions, Boolean) |
Inicjuje nowe wystąpienie klasy GZipStream przy użyciu określonego strumienia, opcji kompresji i opcjonalnie pozostawia otwarty strumień. |
GZipStream(Stream, CompressionLevel)
- Źródło:
- GZipStream.cs
- Źródło:
- GZipStream.cs
- Źródło:
- GZipStream.cs
Inicjuje nowe wystąpienie klasy GZipStream przy użyciu określonego strumienia i poziomu kompresji.
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)
Parametry
- stream
- Stream
Strumień, do którego zapisywane są skompresowane dane.
- compressionLevel
- CompressionLevel
Jedna z wartości wyliczenia wskazująca, czy podkreślić szybkość, czy kompresję podczas kompresowania danych do strumienia.
Wyjątki
stream
jest null
.
Strumień nie obsługuje operacji zapisu, takich jak kompresja. (Właściwość CanWrite obiektu strumienia jest false
.)
Uwagi
Ten konstruktor jest używany, gdy chcesz określić, czy wydajność kompresji czy szybkość jest ważniejsza dla wystąpienia klasy GZipStream.
To przeciążenie konstruktora używa trybu kompresji Compress. Aby ustawić tryb kompresji na inną wartość, użyj przeciążenia GZipStream(Stream, CompressionMode) lub GZipStream(Stream, CompressionMode, Boolean).
Dotyczy
GZipStream(Stream, CompressionMode)
- Źródło:
- GZipStream.cs
- Źródło:
- GZipStream.cs
- Źródło:
- GZipStream.cs
Inicjuje nowe wystąpienie klasy GZipStream przy użyciu określonego strumienia i trybu kompresji.
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)
Parametry
- stream
- Stream
Strumień, do którego są zapisywane skompresowane dane lub z których dane do dekompresowania są odczytywane.
- mode
- CompressionMode
Jedna z wartości wyliczenia, która wskazuje, czy kompresować dane do strumienia, czy dekompresować dane ze strumienia.
Wyjątki
stream
jest null
.
mode
nie jest prawidłową wartością wyliczenia CompressionMode.
-lub-
CompressionMode jest Compress, a CanWrite jest false
.
-lub-
CompressionMode jest Decompress, a CanRead jest false
.
Przykłady
W poniższym przykładzie pokazano, jak ustawić tryb kompresji podczas tworzenia obiektu 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
Uwagi
Domyślnie GZipStream jest właścicielem bazowego strumienia, dlatego zamknięcie parametru stream
spowoduje również zamknięcie bazowego strumienia. Należy pamiętać, że stan bazowego strumienia może mieć wpływ na użyteczność strumienia. Ponadto nie są wykonywane żadne jawne kontrole, więc podczas tworzenia nowego wystąpienia nie są zgłaszane żadne dodatkowe wyjątki.
Jeśli wystąpienie klasy GZipStream zostanie utworzone z parametrem mode
równym Compress
i nie wystąpi żadna dalsza akcja, strumień będzie wyświetlany jako prawidłowy, pusty skompresowany plik.
Domyślnie poziom kompresji jest ustawiony na Optimal, gdy tryb kompresji jest Compress.
Dotyczy
GZipStream(Stream, CompressionLevel, Boolean)
- Źródło:
- GZipStream.cs
- Źródło:
- GZipStream.cs
- Źródło:
- GZipStream.cs
Inicjuje nowe wystąpienie klasy GZipStream przy użyciu określonego strumienia i poziomu kompresji, a opcjonalnie pozostawia otwarty strumień.
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)
Parametry
- stream
- Stream
Strumień, do którego zapisywane są skompresowane dane.
- compressionLevel
- CompressionLevel
Jedna z wartości wyliczenia wskazująca, czy podkreślić szybkość, czy kompresję podczas kompresowania danych do strumienia.
- leaveOpen
- Boolean
true
pozostawić obiekt strumienia otwarty po usunięciu obiektu GZipStream; w przeciwnym razie false
.
Wyjątki
stream
jest null
.
Strumień nie obsługuje operacji zapisu, takich jak kompresja. (Właściwość CanWrite obiektu strumienia jest false
.)
Przykłady
W poniższym przykładzie pokazano, jak ustawić poziom kompresji podczas tworzenia obiektu GZipStream i jak pozostawić strumień otwarty.
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
Uwagi
Tego konstruktora należy użyć, jeśli chcesz określić, czy wydajność kompresji lub szybkość jest ważniejsza dla wystąpienia klasy GZipStream i czy obiekt strumienia jest otwarty po usunięciu obiektu GZipStream.
To przeciążenie konstruktora używa trybu kompresji Compress. Aby ustawić tryb kompresji na inną wartość, użyj przeciążenia GZipStream(Stream, CompressionMode) lub GZipStream(Stream, CompressionMode, Boolean).
Dotyczy
GZipStream(Stream, CompressionMode, Boolean)
- Źródło:
- GZipStream.cs
- Źródło:
- GZipStream.cs
- Źródło:
- GZipStream.cs
Inicjuje nowe wystąpienie klasy GZipStream przy użyciu określonego strumienia i trybu kompresji, a opcjonalnie pozostawia otwarty strumień.
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)
Parametry
- stream
- Stream
Strumień, do którego są zapisywane skompresowane dane lub z których dane do dekompresowania są odczytywane.
- mode
- CompressionMode
Jedna z wartości wyliczenia, która wskazuje, czy kompresować dane do strumienia, czy dekompresować dane ze strumienia.
- leaveOpen
- Boolean
true
pozostawić strumień otwarty po usunięciu obiektu GZipStream; w przeciwnym razie false
.
Wyjątki
stream
jest null
.
mode
nie jest prawidłową wartością CompressionMode.
-lub-
CompressionMode jest Compress, a CanWrite jest false
.
-lub-
CompressionMode jest Decompress, a CanRead jest false
.
Uwagi
Domyślnie GZipStream jest właścicielem bazowego strumienia, dlatego zamknięcie parametru stream
spowoduje również zamknięcie bazowego strumienia. Stan bazowego strumienia może mieć wpływ na użyteczność strumienia. Ponadto nie są wykonywane żadne jawne kontrole, więc podczas tworzenia nowego wystąpienia nie są zgłaszane żadne dodatkowe wyjątki.
Jeśli wystąpienie klasy GZipStream zostanie utworzone z parametrem mode
równym Compress
i nie wystąpi żadna dalsza akcja, strumień będzie wyświetlany jako prawidłowy, pusty skompresowany plik.
Domyślnie poziom kompresji jest ustawiony na Optimal, gdy tryb kompresji jest Compress.
Dotyczy
GZipStream(Stream, ZLibCompressionOptions, Boolean)
Inicjuje nowe wystąpienie klasy GZipStream przy użyciu określonego strumienia, opcji kompresji i opcjonalnie pozostawia otwarty strumień.
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)
Parametry
- stream
- Stream
Strumień, do którego zapisywane są skompresowane dane.
- compressionOptions
- ZLibCompressionOptions
Opcje precyzyjnego dostrajania strumienia kompresji.
- leaveOpen
- Boolean
true
pozostawić obiekt strumienia otwarty po usunięciu obiektu GZipStream; w przeciwnym razie false
.
Wyjątki
stream
lub compressionOptions
jest null
.