Ionic Zip Library v1.9.1.6
GZipStream Constructor (stream, mode, level, leaveOpen)
Reference ► Ionic.Zlib ► GZipStream ► GZipStream(Stream, CompressionMode, CompressionLevel, Boolean)
Create a GZipStream using the specified CompressionMode and the
specified CompressionLevel, and explicitly specify whether the
stream should be left open after Deflation or Inflation.
Declaration Syntax
C# | Visual Basic | Visual C++ |
public GZipStream( Stream stream, CompressionMode mode, CompressionLevel level, bool leaveOpen )
Public Sub New ( _ stream As Stream, _ mode As CompressionMode, _ level As CompressionLevel, _ leaveOpen As Boolean _ )
public: GZipStream( Stream^ stream, CompressionMode mode, CompressionLevel level, bool leaveOpen )
Parameters
- stream (Stream)
- The stream which will be read or written.
- mode (CompressionMode)
- Indicates whether the GZipStream will compress or decompress.
- level (CompressionLevel)
- A tuning knob to trade speed for effectiveness.
- leaveOpen (Boolean)
- true if the application would like the stream to remain open after inflation/deflation.
Remarks
This constructor allows the application to request that the captive stream remain open after the deflation or inflation occurs. By default, after Close() is called on the stream, the captive stream is also closed. In some cases this is not desired, for example if the stream is a memory stream that will be re-read after compressed data has been written to it. Specify true for the leaveOpen parameter to leave the stream open.
As noted in the class documentation, the CompressionMode (Compress or Decompress) also establishes the "direction" of the stream. A GZipStream with CompressionMode.Compress works only through Write(). A GZipStream with CompressionMode.Decompress works only through Read().
Examples
This example shows how to use a GZipStream to compress data.
CopyC#
using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) { using (var raw = System.IO.File.Create(outputFile)) { using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true)) { byte[] buffer = new byte[WORKING_BUFFER_SIZE]; int n; while ((n= input.Read(buffer, 0, buffer.Length)) != 0) { compressor.Write(buffer, 0, n); } } } }
CopyVB.NET
Dim outputFile As String = (fileToCompress & ".compressed") Using input As Stream = File.OpenRead(fileToCompress) Using raw As FileStream = File.Create(outputFile) Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True) Dim buffer As Byte() = New Byte(4096) {} Dim n As Integer = -1 Do While (n <> 0) If (n > 0) Then compressor.Write(buffer, 0, n) End If n = input.Read(buffer, 0, buffer.Length) Loop End Using End Using End Using