关于2.0里面的解压缩
我目前在做的项目要加入压缩和解压缩
我在MSDN里看到的关于解压缩的内容有一处不明白为什么,请同志们给我个提示
不够再追加
using System;
using System.IO;
using System.IO.Compression;
public class GZipTest
{
public static int ReadAllBytesFromStream(Stream stream, byte[] buffer)
{
// Use this method is used to read all bytes from a stream.
int offset = 0;
int totalCount = 0;
while (true)
{
int bytesRead = stream.Read(buffer, offset, 100);
if ( bytesRead == 0)
{
break;
}
offset += bytesRead;
totalCount += bytesRead;
}
return totalCount;
}
public static bool CompareData(byte[] buf1, int len1, byte[] buf2, int len2)
{
// Use this method to compare data from two different buffers.
if (len1 != len2)
{
Console.WriteLine( "Number of bytes in two buffer are different {0}:{1} ", len1, len2);
return false;
}
for ( int i= 0; i < len1; i++)
{
if ( buf1[i] != buf2[i])
{
Console.WriteLine( "byte {0} is different {1}|{2} ", i, buf1[i], buf2[i]);
return false;
}
}
Console.WriteLine( "All bytes compare. ");
return true;
}
public static void GZipCompressDecompress(string filename)
{
Console.WriteLine( "Test compression and decompression on file {0} ", filename);
FileStream infile;
try
{
// Open the file as a FileStream object.
infile = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
byte[] buffer = new byte[infile.Length];
// Read the file to ensure it is readable.
int count = infile.Read(buffer, 0, buffer.Length);
if ( count != buffer.Length)
{
infile.Close();
Console.WriteLine( "Test Failed: Unable to read data from file ");
return;
}
infile.Close();
MemoryStream ms = new MemoryStream();
// Use the newly created memory stream for the compressed data.
GZipStream compressedzipStream = new GZipStream(ms , CompressionMode.Compress, true);
Console.WriteLine( "Compression ");
compressedzipStream.Write(buffer, 0, buffer.Length);
// Close the stream.
compressedzipStream.Close();
Console.WriteLine( "Original size