300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > C#中使用ProtoBuf将list进行序列化并保存到文件

C#中使用ProtoBuf将list进行序列化并保存到文件

时间:2020-04-07 23:28:39

相关推荐

C#中使用ProtoBuf将list进行序列化并保存到文件

场景

C#中使用ProtoBuf提高序列化速度对比二进制序列化:

/BADAO_LIUMANG_QIZHI/article/details/99850052

实现

参考上面那篇博客,进而将序列化后的数据写入文件。

新建Winforn程序,然后拖拽两个Button。

第一个Button用来构建一个1000长度的list对象。

先声明一个全局的list变量。

List<Request> requestList = new List<Request>();

然后在第一个按钮点击事件中

private void button4_Click(object sender, EventArgs e){DateTime begin = DateTime.Now;Console.WriteLine("protobuf初始化数据开始" + begin.ToString("yyyy-MM-dd HH:mm:ss"));for (int i = 1; i <= 1000; i++){requestList.Add(new Request() { id = i,password = "密码"+i});}DateTime end = DateTime.Now;TimeSpan ts = end - begin;Console.WriteLine("protobuf初始化数据结束" + end.ToString("yyyy-MM-dd HH:mm:ss"));Console.WriteLine("共花费" + ts.TotalSeconds);}

注:

这里的类文件是根据.prpto文件生成的,所以其初始化赋值方式注意要如上使用。

然后在第二个按钮的点击事件中:

private void button6_Click(object sender, EventArgs e){DateTime begin = DateTime.Now;Console.WriteLine("ProtoBuf保存数据开始" + begin.ToString("yyyy-MM-dd HH:mm:ss"));using (System.IO.FileStream fs = new System.IO.FileStream(@"E:\testdata1\Record2.data", System.IO.FileMode.Create, System.IO.FileAccess.Write)){ProtoBuf.Serializer.Serialize(fs, this.requestList);}DateTime end = DateTime.Now;TimeSpan ts = end - begin;Console.WriteLine("ProtoBuf保存数据结束" + end.ToString("yyyy-MM-dd HH:mm:ss"));Console.WriteLine("花费时间" + ts.TotalSeconds);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。