加压和解压

  using (FileStream freader = new FileStream("1.txt", FileMode.OpenOrCreate))
            {
                //写入文件的流
                using (FileStream fwrite = File.OpenWrite("1.rar"))//这里rar代表压缩,这里可以不写rar
                {
                    // 根据写入流创建压缩流
                    using (GZipStream zip = new GZipStream(fwrite, CompressionMode.Compress))
                    {byte[] buffe = new byte[1024 * 5];//缓冲区
                        int r;
                        while ((r = freader.Read(buffe, 0, buffe.Length)) > 0)
                        {
                            zip.Write(buffe, 0, r);//用压缩流写入  r个实际的byte
                        }
                    }
                }
            }

            Console.Write("压缩ok");

解压

  //  读取文件的流
            using (FileStream fsreader = File.Open("1.rar", FileMode.Open))//这里1.rar代表压缩的文件
            {
                //  根据读取文件的流创建 压缩流,fsreader是压缩的流
                using (GZipStream zipSteam = new GZipStream(fsreader, CompressionMode.Decompress))
                {
                    //   写入流
                    using (FileStream fsWrite = File.OpenWrite("jie.txt"))
                    {
                        byte[] buffer = new byte[1024 * 3];
                        int r;
                        //  压缩流读取(压缩的文件)
                        while ((r = zipSteam.Read(buffer, 0, buffer.Length)) > 0)
                        {
                            //  写入流写入(写入正常的)
                            fsWrite.Write(buffer, 0, r);
                        }
                    }
                }
            }
时间: 2024-12-17 06:56:17

加压和解压的相关文章

Linux下打包和解压

Linux下使用tar命令来进行打包和解压的操作,再搭配常见压缩算法,可以实现对文件的压缩打包解压缩,常见的压缩算法有gzip,bzip2,还有deflate.snappy等其他的,这里不做记录. 压缩 通过算法,将文件尺寸进行相应缩小,同时不损失文件内容.常用压缩算法如gzip和bzip2,使用压缩算法后文件名分别为*.gz和*.bz2.使用旧的compress算法压缩的文件名为*.Z,目前比较少用. gzip gzip压缩解压使用命令 gzip [选项] 文件名,其中有如下常用选项. (1)

Java多层目录打包和解压代码(apache commons compress, io, lang)

Java多层目录打包和解压代码(apache commons compress, io, lang) package zip;   import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.Fil

iOS开发 -文件下载(6压缩和解压)

iOS开发网络篇—文件下载(六·压缩和解压) 一.完成文件下载 需求:完成文件下载 1.在本地服务器中,添加一个图片的压缩文件. 2.代码示例: 文件下载器代码: 头文件 1 // 2 // YYfileDownloader.h 3 // 01-文件的下载(不合理) 4 // 5 // Created by apple on 14-7-1. 6 // Copyright (c) 2014年 itcase. All rights reserved. 7 // 8 9 #import <Founda

ruby利用Zip Gem写一个简单的压缩和解压的小工具

在UNIX下的我们怎么会沦落到用ruby写压缩和解压工具呢?直接上shell啊!但是请允许本猫这次可耻的用ruby来玩玩吧!其实ruby GEM中有很多压缩解压包,我选的是Zip,也许是因为名字符合KISS原则吧!不过在编写中发现Zip中的某些类没有文档中所说明的实例方法,也许在某个平台上还未实现?? 话先说到前头,这个工具如果解压有重名文件的情况会直接覆盖原文件而不会有任何提示!测试时务必注意,如果造成一些文件丢失可别怪本猫啊! 代码也考虑到多文件的情况,如果是压缩多文件则默认会单独压缩每一个

linux压缩和解压,socket编程

1.使用zip和unzip压缩和解压 Zip aa.zip  文件名(一个) Zip aa.zip 文件名1 文件名2(压缩多个文件) Zip -r aa.zip  文件夹路径(压缩整个文件夹) zip -t 102002 file.zip 压缩当前目录下在2002 10月20日之后的文件压缩 zip file.zip * -x file2.txt 压缩时,将当前目录内的file2.txt文件排除在外 2.解压 unzip aa.zip unzip file.zip x file2 :除了fil

iOS开发网络篇—文件下载(六&#183;压缩和解压)

iOS开发网络篇—文件下载(六·压缩和解压) 一.完成文件下载 需求:完成文件下载 1.在本地服务器中,添加一个图片的压缩文件. 2.代码示例: 文件下载器代码: 头文件 1 // 2 // YYfileDownloader.h 3 // 01-文件的下载(不合理) 4 // 5 // Created by apple on 14-7-1. 6 // Copyright (c) 2014年 itcase. All rights reserved. 7 // 8 9 #import <Founda

Xceed Zip压缩和解压控件Xceed Zip Compression Library

Xceed Zip Compression Library 是一个高性能的 Zip 和 Unzip 数据压缩ActiveX控件.通过它,可以创建和操作与Zip文件,也能在内存中直接压缩/解压数据.它设计提供高度灵活性,并且使用快速的多线程 zip 压缩引擎. 具体功能: ActiveX 技术 ATL 3.0编写,简单且独立的 COM 对象和 ActiveX 控件. 无须外部的压缩动态链接库, MFC DLL 或运行库等. 同时有单线程 (STA) 和多线程 (MTA) 模型设计. 不必将组件置于

C#对文件操作(基本的读写以及压缩和解压)

主要是针对单个文件进行读写操作和压缩操作:用到的主要C#类有FileStream.FileInfo.StreamWrite.StreamRead.GZipStream. 字符数组和字节数组的转换: 1 byte[] bytedata = new byte[200]; 2 char[] chardata = new char[200]; 3 try 4 { 5 FileStream fs = new FileStream("App.config", FileMode.Open); 6 f

Linux下的压缩和解压

1. gzip, bzip2 能否直接压缩目录呢? 不可以 2. 请快速写出,使用gzip和bzip2压缩和解压一个文件的命令.压缩:gzip 1.txt bzip2 1.txt解压:gzip -d 1.txt.gz bzip2 -d 1.txt.bz2 3. tar 在打包的时候,如果想排除多个文件或者目录如何操作?--exclude filename 4. 请实验,如果不加 "-" 是否正确, 如 tar zcvf  1.tar.gz  1.txt 2.txt ?正确,可以执行命令