Namespace: System.IO.Compression
There are two types of compression streams, GZip and Deflate. GZip leaves a standard header
information block that can be used by the tools like Gzip to decompress the
information. Deflate does not leaves any header
information thus it is only decompressed by the respective application only.
Both streams can only compress 4GB of uncompressed data.
FileStream source = new
FileStream(@“C:\file.dat”);
FileStream destination = new
FileStream(@“C:\file.gzip”);
GZipStream Gs = new
GZipStream(destination, CompressionMode.Compress);
int b = source.ReadByte();
While(b!=-1)
{
Gs.WriteByte((byte)b);
b
= source.ReadByte();
}
And to decompress a compressed file:
FileStream source = new
FileStream(@“C:\file.gzip”); //reversed
FileStream destination = new
FileStream(@“C:\file.dat”);
GZipStream Gs = new
GZipStream(destination, CompressionMode.Decompress);
int b = source.ReadByte();
While(b!=-1)
{
Gs.WriteByte((byte)b);
b
= source.ReadByte();
}
GZip Properties
Name
|
Description
|
BaseStream
|
Gets a reference to the underlying stream.
|
CanRead
|
Gets a value indicating whether the stream
supports reading while decompressing a file. (Overrides .CanRead.)
|
CanSeek
|
Gets a value indicating whether the stream
supports seeking. (Overrides .CanSeek.)
|
CanTimeout
|
Gets a value that determines whether the
current stream can time out. (Inherited from Stream.)
|
CanWrite
|
Gets a value indicating whether the stream
supports writing. (Overrides .CanWrite.)
|
Length
|
Throws a NotSupportedException.
|
Position
|
Throws a NotSupportedException.
|
ReadTimeout
|
Gets or sets a value that determines how
long the stream will attempt to read before timing out. (Inherited from Stream.)
|
WriteTimeout
|
Gets or sets a value that determines how
long the stream will attempt to write before timing out. (Inherited from Stream.)
|
Public Methods:
Name
|
Description
|
BeginRead
|
Begins an asynchronous read operation.
(Overrides .BeginRead(Byte[](), Int32, Int32,
AsyncCallback, Object).)
|
BeginWrite
|
Begins an asynchronous write operation.
(Overrides .BeginWrite(Byte[](), Int32, Int32,
AsyncCallback, Object).)
|
Close
|
Closes the current stream and releases any
resources (such as sockets and file handles) associated with the current
stream. (Inherited from Stream.)
|
EndRead
|
Waits for the pending asynchronous read to
complete. (Overrides .EndRead(IAsyncResult).)
|
EndWrite
|
Handles the end of an asynchronous write
operation. (Overrides .EndWrite(IAsyncResult).)
|
Flush
|
Flushes the contents of the internal buffer
of the current GZipStream object to the underlying stream. (Overrides .Flush().)
|
Read
|
Reads a number of decompressed bytes into
the specified byte array. (Overrides .Read(Byte[](), Int32, Int32).)
|
ReadByte
|
Reads a byte from the stream and advances
the position within the stream by one byte, or returns -1 if at the end of
the stream. (Inherited from Stream.)
|
Seek
|
Throws a NotSupportedException.
|
SetLength
|
Throws a NotSupportedException.
|
Write
|
Writes compressed bytes to the underlying
stream from the specified byte array. (Overrides .Write(Byte[](), Int32, Int32).)
|
WriteByte
|
Writes a byte to the current position in the
stream and advances the position within the stream by one byte. (Inherited
from Stream.)
|
Comments