C# GZipStream

using System.IO;
using System.IO.Compression;
using System.Text;

class Program
{
    static void Main()
    {
        try
        {
            // 1.Starting file is 26,747 bytes.
            string anyString = File.ReadAllText("TextFile1.txt");

            // 2.Output file is 7,388 bytes.
            CompressStringToFile("new.gz", anyString);
        }
        catch
        {
            // Couldn't compress.
        }
    }

    public static void CompressStringToFile(string fileName, string value)
    {
        // A.Write string to temporary file.
        string temp = Path.GetTempFileName();
        File.WriteAllText(temp, value);

        // B. Read file into byte array buffer.
        byte[] b;
        using (FileStream f = new FileStream(temp, FileMode.Open))
        {
            b = new byte[f.Length];
            f.Read(b, 0, (int)f.Length);
        }

        // C. Use GZipStream to write compressed bytes to target file.
        using (FileStream f2 = new FileStream(fileName, FileMode.Create))
        using (GZipStream gz = new GZipStream(f2, CompressionMode.Compress, false))
        {
            gz.Write(b, 0, b.Length);
        }
    }
}

form:http://www.dotnetperls.com/gzipstream

时间: 2025-01-02 05:12:28

C# GZipStream的相关文章

如何压缩多个文件/文件夹(GZipStream and C#)

在.Net Framework 2.0 中添加了System.IO.Compression 类来实现对文件的压缩/解压(GZipStream方 法),下面我们来看一个简单的例子. Code1: 1 public static void Compress(string filePath, string zipPath) 2 { 3 FileStream sourceFile = File.OpenRead(filePath); 4 FileStream destinationFile = File

GZipStream实现压缩以及出现的问题

在抓取页面的过程中,在存储抓取到的页面内容的时候我需要先将页面压缩再存储, 为了使用上的方便,采用了2.0下的GZipStream来进行压缩. 引用如下: using System.IO; using System.IO.Compression; ...... public static byte[] Compress(byte[] data) { MemoryStream stream = new MemoryStream(); GZipStream gZipStream = new GZip

GZipStream問題...

问题描述 //privatevoidexecuteFileCompression()//{//FileStreamsourceFile=File.OpenRead(this.backupPath+this.backupOriginalName);//FileStreamdestinationFile=File.Create(this.backupPath+this.backupCompressionName);//byte[]buffer=newbyte[sourceFile.Length];/

GZipStream对数据格式有限制吗?

问题描述 GZipStream对数据格式有限制吗?我对音频流进行压缩,却解不开.很奇怪. 解决方案 解决方案二:没有限制.LZ试试TEXT文件,看看解得开吗?也许程序不对...RAR可以解GZip得文件.LZ可以用RAR做测试.解决方案三:我不是文件,是实时采集的音频数据流.解决方案四:流本身完整吗?还是在压缩时,流本身的长度还在变?

如何用GZipStream解压缩

问题描述 openFileDialog1.ShowDialog();stringstr=openFileDialog1.FileName;FileStreamfs=newFileStream(str,FileMode.OpenOrCreate,FileAccess.ReadWrite,FileShare.ReadWrite);intiLen=(int)fs.Length;byte[]file=newbyte[iLen];MemoryStreammem=newMemoryStream();mem.

gzipStream 异步的问题

问题描述 本人最近在写一个软件里面用到了GZIPSTREAM压缩数据,为了可以响应用户界面的操作我使用了异步来操作.以下是具体代码请高手过目问题也在代码下给出privateBooleancompressDateByFile(StringinFilePath,StringoutFilePath){intbufferSize=2048;this.isComplete=false;BooleancompressSuccess=false;//标记异步压缩完成Byte[]buffer=null;try{

求教啊,一个关于GZipStream类解压的问题

问题描述 我在使用GZipStream类进行压缩后使用socket传输,再客户端收到后,再使用GZipStream解压,然后奇怪的问题出现了,在我自己写的客户端解压都没问题,当其他人写的一个Unity的程序调用的时候就报错了,错误如下,好郁闷啊,整个方法我都封装了CreateZStream----System.EntryPointNotFoundException:CreateZStreamat(wrappermanaged-to-native)System.IO.Compression.Def

用.NET 2.0压缩/解压功能处理大型数据

数据|压缩 摘要 如果你的应用程序从未使用过压缩,那么你很幸运.而对于另一部分使用压缩的开发人员来说,好消息是,.NET 2.0如今提供了两个类来处理压缩和解压问题.本文正是想讨论何时以及如何使用这些有用的工具. 引言 .NET框架2.0中的一个新名称空间是System.IO.Compression.这个新名称空间提供了两个数据压缩类:DeflateStream和GZipStream.这两个压缩类都支持无损压缩和解压,其设计目的是为了处理流式数据的压缩和解压问题. 压缩是减少数据大小的有效办法.

c#2.0中新增的两个压缩类

压缩 .NET Framework 2.0 中新增的两个压缩类 System.IO.Compression 命名空间   注意:此命名空间在 .NET Framework 2.0 版中是新增的. System.IO.Compression 命名空间包含提供基本的流压缩和解压缩服务的类. (downmoon原作)  类                               说明  DeflateStream         提供用于使用 Deflate 算法压缩和解压缩流的方法和属性.  G