分享

C# 压缩流GZipStream

 时间剧毒 2020-01-10

using System;

using System.Collections.Generic;

using System.Text;

using System.IO;

using System.IO.Compression;

namespace VA18.___文件压缩GZipStream

{

    class Program

    {

        static void Main(string[] args)

        {

                    //1>压缩

                    //1.创建读取流 File.OpenRead()

                    //2.创建写入流 File.OpenWrite()

                    //3.创建压缩流 new GzipStream();将写入流作为参数

                    //4.每次通过读取流读取一部分数据,通过压缩流写入

                    //2>解压

                    //1.创建读取流 File.OpenRead()

                    //2.创建压缩流 new GzipStream();将写入流作为参数

                    //3.创建写入流 File.OpenWrite()

                    //4.每次通过压缩流读取数据,通过写入流写入数据

                    string path;    //正常文件

                    string zipPath ; //压缩文件

                    path = @"D:\桌面文件\文本文档.txt";

                    zipPath = @"D:\桌面文件\文本文档压缩.rar";

                      //1.创建读取文本文件的流 (要压缩那个文件)

                      using (FileStream fsRead = File.OpenRead(path))

                     {

                         //2创建写入文本文件的流  (压缩文件需要保存在哪里)

                         using (FileStream fsWrite = File.OpenWrite(zipPath))

                          {

                              //3 创建压缩流 压缩文件     (压缩的文件创建成压缩流 通过压缩流写入文件 )

                                using (GZipStream zipStream=new GZipStream (fsWrite ,CompressionMode.Compress ))

                                {

                                        //4每次读取1024byte

                                        byte[] byts = new byte[1024*10];

                                        int len = 0;

                                        while ((len = fsRead.Read(byts, 0, byts.Length)) > 0)

                                        {

                                            //通过压缩流写入文件

                                            zipStream.Write(byts, 0, len);

                                        }

                                }

                            }

                        }

                        //1

                        Console.WriteLine("压缩完成");

                      //解压

                        path = @"D:\桌面文件\文本文档解压.rar";

                      //1.创建读取流    (要解压那个文件)

                      using (FileStream fsRead = File.OpenRead(zipPath))

                       {

                           //2 创建压缩流 解压文件   (压缩的文件创建成压缩流 通过压缩流写入文件 )

                            using (GZipStream gzipStream =new GZipStream (fsRead ,CompressionMode.Decompress)){

                                //3创建写入流     

                                using (FileStream fsWrite = File.OpenWrite(path))

                                {

                                        byte[]byts=new byte [1024*10];

                                        int len = 0;

                                        while ((len=gzipStream.Read (byts,0,byts.Length))>0 ){

                                            //通过写入流写入数据

                                            fsWrite.Write(byts,0,len);

                                        }

                                    }

                              }

                      }

                      Console.WriteLine("解压完成");

                      Console.Read();

        }

    }

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多