我的.Net学习之路四——序列化和反序列
来源:互联网 发布:python基础教程pdf 编辑:程序博客网 时间:2024/06/05 17:55
一、介绍
在数据的保存中,我们经常需要保存很多东西,但是有些时候需要保存一个很复杂的类,如果用简单存储单个数据的办法就很难保存,这时我们就需要对这个类进行序列化,也就是说,序列化是用来保存一个类的。
二、需求
1、我们有一个类(为了方便看清楚,这个类弄得很简单),
public class Person { private string _name; public string Name { get { return _name; } set { _name = value; } } private string classes; public string Classes { get { return classes; } set { classes = value; } } private int _age; public int Age { get { return _age; } set { _age = value; } } }
跟java一样,需要序列化一个类的时候,java中需要实现Serializable接口,.Net也
需要做类似的事,不过写法上跟java就完全不一样了。
写法:
[Serializable] public class Person { private string _name; public string Name { get { return _name; } set { _name = value; } } private string classes; public string Classes { get { return classes; } set { classes = value; } } private int _age; public int Age { get { return _age; } set { _age = value; } } }
得java那样的设计更好一些。
2、序列化操作
①首先创建实例化一个类,并且赋值:
//要将p这个对象 传输给对方电脑 Person p = new Person(); p.Name = "豆豆"; p.Classes = "软件一班"; p.Age = 21;
②创建一个输出流
FileStream fsWrite = new FileStream(@"C:\Users\jztx\Desktop\111.txt", FileMode.OpenOrCreate, FileAccess.Write);
③开始序列化
//开始序列化对象 BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(fsWrite, p);
这样,我们的序列化操作就完成了。桌面上会出现一个文件,当然,打开里面是乱码。
3、反序列化操作
①创建一个输入流
FileStream fsRead = new FileStream(@"C:\Users\jztx\Desktop\111.txt", FileMode.OpenOrCreate, FileAccess.Read);
②反序列化操作
BinaryFormatter bf = new BinaryFormatter(); Person p = (Person)bf.Deserialize(fsRead); fsRead.Close();
③检验输出
Console.WriteLine(p.Name); Console.WriteLine(p.Age); Console.WriteLine(p.Classes); Console.ReadKey();
输出结果完全符合我们的要求。
相关源码:http://pan.baidu.com/s/1c0B63V6
0 0
- 我的.Net学习之路四——序列化和反序列
- .Net深入学习序列化和反序列化
- .Net深入学习序列化和反序列化
- .NET序列化和反序列化
- .net序列化和反序列化
- .net c# 序列化和反序列
- net c# 序列化和反序列
- .net c# 序列化和反序列
- .net c# 序列化和反序列
- .net c# 序列化和反序列
- .net c# 序列化和反序列
- .net c# 序列化和反序列
- .net c# 序列化和反序列
- Hadoop学习日志之序列化和反序列化
- .NET对象的XML序列化和反序列化
- .NET对象的XML序列化和反序列化
- .NET对象的XML序列化和反序列化
- .NET里的序列化和反序列化
- 设置jdk环境变量时lib中的rt.jar ,dt.jar ,tool.jar作用是什么?
- 【数据库系列(三)】数据库索引
- DFS Permutations II
- 十道海量数据处理面试题与十个方法大总结(牛人总结,值得一看)
- 判断单链表是否有环
- 我的.Net学习之路四——序列化和反序列
- G - 免费馅饼 HDU 1176 (动态规划---数塔的变形 )
- 欢迎使用CSDN-markdown编辑器
- System类基本应用
- Runtime类基本应用
- java 内部类与外部类学习
- Date类基本应用
- Spark学习笔记一 环境搭建
- Calendar类基本应用