[70-536] Compressing Streams

Lesson 3

Compressing Streams

Alcune volte è necessario comprimere uno stream per risparmiare spazio o banda: ci aiutano le classi GZipStream e DeflateStream. Entrambe si limitano a comprimere dati fino a 4GB.

La differenza tra le due è che la prima permette l'introduzione di determinati header per includere informazioni extra utili alla decompressione dello stream. Ne deriva che il file scritto con DeflateStream è più piccolo.

Per comprimere:

FileStream sourceFile = File.OpenRead(inFileName);
FileStream destinationFile = File.Create(outFileName);
GZipStream compStream = new GZipStream(destFile, CompressionMode.Compress);
int theByte = sourceFile.ReadByte();
while(theByte != -1)
{
compStream.WriteByte((byte)theByte);
theByte = sourceFile.ReadByte();
}

Per decomprimere:

FileStream sourceFile = FileOpenRead(inFileName);
FileStream destinationFile = File.Create(outFileName);
GZipStream compStream = new GZipStream(sourceFile, CompressionMode.Decompress);
int theByte = compStream.ReadByte();
while(theByte != -1)
{
destFile.WriteByte((byte)theByte);
theByte = compStream.ReadByte();
}
Technorati tags:

Print | posted @ giovedì 31 gennaio 2008 13:47

Comments have been closed on this topic.