压缩流--DeflateStream和GZipStream
//使用DeflateStream压缩和解压缩文件
namespace 压缩流1
{
class Program
{
static void Main(string[] args)
{
FileStream fs;
DeflateStream deflate;
FileInfo myFile;
string originalXML = "original.xml";
string compressedXML = "commpressed";
string decompressedXML = "decommpressed.xml";
DataSet ds = new DataSet();
myFile = new FileInfo(originalXML);
Console.WriteLine("原文件{0}中包含{1}字节", myFile.Name, myFile.Length.ToString());
ds.ReadXml(originalXML);
//创建一个文件
fs = new FileStream(compressedXML, FileMode.Create, FileAccess.Write);
//对文件进行压缩
deflate = new DeflateStream(fs, CompressionMode.Compress);
//保存XML文件
ds.WriteXml(deflate);
//关闭流
deflate.Close();
myFile = new FileInfo(compressedXML);
Console.WriteLine("文件被压缩成{0}字节,存放在{1}中", myFile.Length.ToString(), myFile.Name);
//创建一个文件
fs = new FileStream(compressedXML, FileMode.Open, FileAccess.Read);
//对文件进行解压
deflate = new DeflateStream(fs, CompressionMode.Decompress);
ds = new DataSet();
ds.ReadXml(deflate);
ds.WriteXml(decompressedXML);
myFile = new FileInfo(decompressedXML);
Console.WriteLine("文件被解压成{0}字节,存放在{1}中", myFile.Length.ToString(), myFile.Name);
Console.ReadLine();
}
}
//使用GZipStream压缩和解压缩文件,与上一个基本一样
using System.IO;
using System.IO.Compression;
using System.Data;
namespace 压缩流2
{
class Program
{
static void Main(string[] args)
{
//GZipStream解压缩文件
FileStream fs;
GZipStream gzip;
FileInfo myFile;
string originalXML = "original.xml";
string compressedXML = "originalGZip.gz";
string decompressedXML = "UnZip.xml";
DataSet ds = new DataSet();
myFile = new FileInfo(originalXML);
Console.WriteLine("原文件{0}中包含{1}字节", myFile.Name, myFile.Length.ToString());
ds.ReadXml(originalXML);
//压缩
fs = new FileStream(compressedXML, FileMode.Create, FileAccess.Write);
gzip = new GZipStream(fs, CompressionMode.Compress);
ds.WriteXml(gzip);
gzip.Close();
myFile = new FileInfo(compressedXML);
Console.WriteLine("文件被压缩成{0}字节,存放在{1}中", myFile.Length.ToString(), myFile.Name);
fs = new FileStream(compressedXML, FileMode.Open, FileAccess.Read);
gzip = new GZipStream(fs, CompressionMode.Decompress);
ds = new DataSet();
ds.ReadXml(gzip);
ds.WriteXml(decompressedXML);
myFile = new FileInfo(decompressedXML);
Console.WriteLine("文件被解压成{0}字节,存放在{1}中", myFile.Length.ToString(), myFile.Name);
Console.ReadLine();
}
}
}
转载于:https://www.cnblogs.com/zxktxj/archive/2012/04/09/2438997.html
压缩流--DeflateStream和GZipStream相关推荐
- 用DeflateStream和GZipStream压缩数据
System.IO.Compression 命名空间提供两个类:DeflateStream和GZipStream,这两个类都可以实现数据压缩.这两个类采用都采用Deflate算法来进行无损数据压缩, ...
- ObjectIOStream 对象流 ByteArrayIOStream 数组流 内存流 ZipOutputStream 压缩流
1.对象流 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File ...
- Java基础19:IO流—缓冲流、转换流、序列化、打印流、压缩流和解压流
IO流中的一些其他流:缓冲流.转换流.序列化.打印流.压缩流和解压流 1. 缓冲流 IO流除了一些基本的流,还有在此基础上发展出来的一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够 ...
- java压缩流的用法_Java对压缩包的操作(解压缩)
image 前言 如何用Java对文件进行加压和压缩 上篇文章说了项目中对根据URL提供的HTML代码中的文件URL进行下载,将下载后的文件存放在服务器上,但是文件下载下来都是ZIP压缩包.那么这篇就 ...
- [Java]Swing窗体演示ZIP压缩流的压缩与解压
最近开始学习java,然后学完了Swing和各种流后,试着写了个ZIP的压缩解压软件出来,具体代码如下: 压缩准备部分: String path = ja.getText();//获取文本域内容Str ...
- 《果壳中的C# C# 5.0 权威指南》 (09-26章) - 学习笔记
<果壳中的C# C# 5.0 权威指南> ========== ========== ========== [作者] (美) Joseph Albahari (美) Ben Albahar ...
- .NET Core/.NET之Stream简介
之前写了一篇C#装饰模式的文章用.NET Core实现装饰模式和.NET Core的Stream简介 提到了.NET Core的Stream, 所以这里尽量把Stream介绍全点. (都是书上的内容) ...
- java zip 流压缩_关于zip:检测流是否用Java压缩的最佳方法
找出i java.io.InputStream包含压缩数据的最佳方法是什么? 这是HTTP请求/响应的一部分吗? 介绍 由于所有答案都存在5年之久,因此我有责任写下来,这是怎么回事.我严重怀疑应该读取 ...
- [重学Java基础][Java IO流][Exter.1]Apache Commonms Compress压缩工具包
Apache Commons Compress 简介 Apache Commons Copress是 Apache Commons系列工具的一个部分 是一个提供了更丰富的压缩功能和支持更多压缩格式的工 ...
最新文章
- 奶牛异或(01字典树)
- 深度|2030年8亿人会失业!图解机器人如何取代你的工作
- VMware虚拟化技术培训(11) 小结
- 网上的一篇spring security详解教程,觉得不错,转过来了
- ubuntu16安装pylearn2 出现错误提示importerror:no module named six.moves
- 实现input框的全选和清空
- [蓝桥杯][历届试题]国王的烦恼(反向+并查集)
- 一直想说的,技术职业化
- 天天有毒_鸡汤文案类小程序源码
- es实现近实时搜索推荐的两种方式
- 国内交易平台关闭了,教你如何把Zcash(zec)兑换成人民币
- 路径规划算法1.3抽样算法——PRM与RRT算法
- 软件著作权申请流程(2021版)
- 记录一丢丢自己在用FileTransfer和FileOpener2实现自动更新下载安装apk时候踩的坑
- 德芙网络营销策略ppt_德芙网络营销案例ppt采集
- 大学学python用记笔记吗_Python 应该怎么学?
- 基于MATLAB的运动目标检测解析
- matlab rand函数解释,matlab rand()函数五种用法
- JeecgBoot新增一个module
- 【24位IEPE振动加速度音频采集卡-北京阿尔泰科技】
热门文章
- Given an integer, write a function to determine if it is a power of two
- UDP实现全双工聊天(聊天工具进阶)pyhton
- python下载m3u8地址_python 下载m3u8视频的示例代码
- python学习之内置函数(二)
- 博弈论 斯坦福game theory stanford week 5.0_
- Python 操作 MySQL 的正确姿势
- Android设置布局背景为白色的三种方法
- HDOJ 3709 Balanced Number
- MySQL 5.5.19 GA 发布 修复多个Bug
- MS Vs.net 2003 Sp1发布!