C#中将list进行序列化并使用SharpZipLib进行压缩 2023-10-19 08:12 284阅读 0赞 ## 场景 ## ICSharpCode.SharpZipLib.dll 下载: [https://download.csdn.net/download/badao\_liumang\_qizhi/11586902][https_download.csdn.net_download_badao_liumang_qizhi_11586902] ## 实现 ## 新建Winform窗体程序。 打开资源管理器-引用-右键-添加--浏览 选择刚才上面下载的ICSharpCode.SharpZipLib.dll,点击确定。 ![20190821100606587.jpg][] 右击项目-添加-类 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); } 具体使用见注释。 ### 运行效果 ### ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBREFPX0xJVU1BTkdfUUlaSEk_size_16_color_FFFFFF_t_70][] 将其解压 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBREFPX0xJVU1BTkdfUUlaSEk_size_16_color_FFFFFF_t_70 1][] [https_download.csdn.net_download_badao_liumang_qizhi_11586902]: https://download.csdn.net/download/badao_liumang_qizhi/11586902 [20190821100606587.jpg]: https://img-blog.csdnimg.cn/20190821100606587.jpg [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBREFPX0xJVU1BTkdfUUlaSEk_size_16_color_FFFFFF_t_70]: https://img-blog.csdnimg.cn/20190821100636841.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBREFPX0xJVU1BTkdfUUlaSEk=,size_16,color_FFFFFF,t_70 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBREFPX0xJVU1BTkdfUUlaSEk_size_16_color_FFFFFF_t_70 1]: https://img-blog.csdnimg.cn/20190821100640784.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBREFPX0xJVU1BTkdfUUlaSEk=,size_16,color_FFFFFF,t_70
还没有评论,来说两句吧...