C#中将list进行序列化并使用SharpZipLib进行压缩
场景
ICSharpCode.SharpZipLib.dll 下载:
https://download.csdn.net/download/badao_liumang_qizhi/11586902
实现
新建Winform窗体程序。
打开资源管理器-引用-右键-添加--浏览
选择刚才上面下载的ICSharpCode.SharpZipLib.dll,点击确定。
右击项目-添加-类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ProtoBufTest
{[Serializable]class Person{public Person(int id ,string password) {this.Id = id;this.Password = password;}private int id;public int Id{get { return id; }set { id = value; }}private string password;public string Password{get { return password; }set { password = value; }}}
}
在窗体上拖拽一个Button按钮,然后双击进其点击事件。
private void button7_Click(object sender, EventArgs e){DateTime begin = DateTime.Now;Console.WriteLine("二进制压缩开始" + begin.ToString("yyyy-MM-dd HH:mm:ss"));//初始化数据for (int i = 0; i < 10000; i++){personList.Add(new Person(i,"密码"+i));}try{//创建内存流对象MemoryStream ms = new MemoryStream(); //序列化对象BinaryFormatter formatter = new BinaryFormatter();formatter.Serialize(ms, this.personList);//把内存流对象写入字节数组 byte[] buffer = ms.ToArray();//关闭内存流对象ms.Close();//释放资源 ms.Dispose(); FileStream fs = File.Create(@"E:\testdata1\Record3.zip");//创建文件//创建zip输出流ZipOutputStream zipOutputStream = new ZipOutputStream(fs, buffer.Length);//ZipEntry用于表示Zip文件条目 --将会在压缩文件中创建Record3.data文件ZipEntry entry = new ZipEntry("Record3.data");//将其放进压缩文件中zipOutputStream.PutNextEntry(entry);//将字节数组写入文件zipOutputStream.Write(buffer, 0, buffer.Length);zipOutputStream.Finish();zipOutputStream.Close();zipOutputStream.Dispose();//关闭流fs.Close();//释放对象fs.Dispose(); }catch (Exception ex){Console.WriteLine(ex.Message);}DateTime end = DateTime.Now;TimeSpan ts = end - begin;Console.WriteLine("二进制压缩结束" + end.ToString("yyyy-MM-dd HH:mm:ss"));Console.WriteLine("共花费 " + ts.TotalSeconds);}
具体使用见注释。
运行效果
将其解压
C#中将list进行序列化并使用SharpZipLib进行压缩相关推荐
- C#中将list使用ProtoBuf进行序列化并使用SharpZipLib进行压缩
场景 C#中使用ProtoBuf提高序列化速度对比二进制序列化: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99850052 ...
- Java基础19:IO流—缓冲流、转换流、序列化、打印流、压缩流和解压流
IO流中的一些其他流:缓冲流.转换流.序列化.打印流.压缩流和解压流 1. 缓冲流 IO流除了一些基本的流,还有在此基础上发展出来的一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够 ...
- 【序列化】Java中将使用PHP序列化工具将数据序列化
在项目中需要和PHP公用一个MySQL数据库,有些数据需要序列化之后保存,这就需要将待存储的数据序列化之后存到数据库中,取出的时候,需要反序列化之后才能正常使用. 原数据: {"060088 ...
- C#使用ICSharpCode.SharpZipLib.dll压缩文件夹和文件
大家可以到http://www.icsharpcode.net/opensource/sharpziplib/ 下载SharpZiplib的最新版本,本文使用的版本为0.86.0.518,支持Zip, ...
- C#利用ICSharpCode.SharpZipLib.dll压缩文件和解压文件
/// <summary> /// 压缩文件 /// </summary> using System; using System.IO; using ICSharpCode ...
- 用SharpZipLib来压缩和解压文件 --zt
from:http://www.cnblogs.com/zhangweiguo3984/archive/2007/03/15/314333.html#675634 1.建立工程,添加引用,添加Shar ...
- ICSharpCode.SharpZipLib 开源压缩库使用示例
官方网站:http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx 插件描述: ICSharpCode.SharpZipLib.dl ...
- python的文件读写,序列化,复制/删除目录,压缩/解压缩/列出压缩文件目录,计算CRC32和MD5
import json import os import shutil import pickle import zlib import binascii import hashlib import ...
- 使用SharpZipLib.dll压缩zip
/// <summary> /// zip压缩 /// </summary> /// <param name=" ...
最新文章
- 报错:org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
- C#学习笔记——MDI窗体(多文档界面)
- element组件库中table自定义分页效果
- Uber提出有创造力的POET:自行开发更困难环境和解决方案
- Java9都快发布了,Java8的十大新特性你了解多少呢?
- android图片异步加载解决步骤
- 通过userAgent判断用户浏览器
- 【小工具】仿站小工具的使用及下载
- html静态网页制作代码
- 华为狼性文化遭质疑,那我们当个佛系程序员可好?
- Linux系统管理员对普通用户的基本操作
- 计算机网络之无线与移动网络-蜂窝网络
- 概率密度变换公式 雅可比矩阵_连续型随机变量“分布函数”与“概率密度”之间求变换公式...
- android pdf修改字体大小,如何编辑pdf文字(安卓上最好的pdf笔记app)
- 送男孩子情人节礼物送什么?情人节必备礼物合集
- Real-Time Rendering 4th Edition 实时渲染第四版 第五章 着色基础(Shading Basics)
- 两种领导力:温柔与严厉
- 基于python/scipy学习概率统计(3):正态分布
- hud抬头显示器哪个好_什么样的HUD抬头显示器好?圆盾用是实力说话
- python pickle and json
热门文章
- Spring AOP实现原理解析
- weblogic 安装教程
- 虚拟机的分类_「面试必备」Java虚拟机知识点复习手册(下)
- wav文件头修复_标记管理音频文件工具:Yate for Mac
- iphone定时关机_成都苹果维修点教你iPhone手机死机、关不了机怎么处理?
- 微型计算机1tb等于,计算机应用基础第一套试卷100分
- java横线_知识点:java一些方法会有横线?以Date 过期方法为例
- java gc信息_JVM之GC回收信息详解
- 华为鸿蒙搭载芯片,独立188天,荣耀50系列破冰!6nm芯片,不搭载鸿蒙
- 海南大计算机与网络,2010-2014年海南省计算机与网络发展情况