自定义类序列化与反序列化二进制

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.IO;
 7 using System.Runtime.Serialization.Formatters.Binary;
 8 namespace test
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             //要将p这个对象 传输给对方电脑
15             //Person p = new Person();
16             //p.Name = "张三";
17             //p.Age = 19;
18             //p.Gender = ‘男‘;
19             //using (FileStream fsWrite = new FileStream(@"C:\Users\SpringRain\Desktop\111.txt", FileMode.OpenOrCreate, FileAccess.Write))
20             //{
21             //    //开始序列化对象
22             //    BinaryFormatter bf = new BinaryFormatter();
23             //    bf.Serialize(fsWrite, p);
24             //}
25             //Console.WriteLine("序列化成功");
26             //Console.ReadKey();
27
28             //接收对方发送过来的二进制 反序列化成对象
29             Person p;
30             using (FileStream fsRead = new FileStream(@"C:\Users\SpringRain\Desktop\111.txt", FileMode.OpenOrCreate, FileAccess.Read))
31             {
32                 BinaryFormatter bf = new BinaryFormatter();
33                 p = (Person)bf.Deserialize(fsRead);
34             }
35             Console.WriteLine(p.Name);
36             Console.WriteLine(p.Age);
37             Console.WriteLine(p.Gender);
38             Console.ReadKey();
39         }
40     }
41
42
43     [Serializable]
44     public class Person
45     {
46         private string _name;
47
48         public string Name
49         {
50             get { return _name; }
51             set { _name = value; }
52         }
53
54
55         private char _gender;
56
57         public char Gender
58         {
59             get { return _gender; }
60             set { _gender = value; }
61         }
62
63         private int _age;
64
65         public int Age
66         {
67             get { return _age; }
68             set { _age = value; }
69         }
70     }
71 }

原文地址:https://www.cnblogs.com/hudean/p/11717086.html

时间: 2024-10-10 02:13:17

自定义类序列化与反序列化二进制的相关文章

C# 实体类序列化与反序列化一 (XmlSerializer)

/// <summary> /// 实体类序列化的反序列化的类 /// </summary> /// <typeparam name="T"></typeparam> public abstract class EntityClassXmlSerializer<T> { /// <summary> /// 实体类序列化成xml string /// </summary> /// <param na

C# 实体类序列化与反序列化

/// <summary> /// 实体类序列化的反序列化的类 /// </summary> /// <typeparam name="T"></typeparam> public abstract class EntityClassXmlSerializer<T> { /// <summary> /// 实体类序列化成xml string /// </summary> /// <param na

jackson中自定义处理序列化和反序列化

http://jackyrong.iteye.com/blog/2005323 ********************************************** 对于一直用gson的人来说,如果单独用jackson,真是麻烦了,但还是得小结下了: 先来看下如何自定义把某个对象序列化为json: 先是对象: Java代码 public class User { public int id; public String name; } public class Item { public

如何自定义序列化和反序列化

分析问题 在其他很多编程语言(比如C++)中,实现序列化和反序列化的过程往往需要程序员手动地编写代码.而.NET中提供的Serializable特性却帮助程序员非常便捷地申明一个可序列化的类型.但是,便捷的同时往往意味着缺乏灵活性.很多时候,由于业务逻辑的要求,程序员往往需要主动地控制序列化和反序列化的过程,.NET提供了ISerializable接口来满足自定义序列化需求. 为了实现自定义的序列化和反序列化,程序员需要实现ISerializable接口,并且提供一个特定的在反序列化中构造对象的

24 Java学习之对象序列化和反序列化

一. 序列化和反序列化的概念 对象序列化:把对象转换为字节序列的过程 对象反序列化:把字节序列恢复为对象的过程 1. 为何要进行序列化 我们知道当虚拟机停止运行之后,内存中的对象就会消失.在很多应用中,需要对某些对象进行序列化,让他们离开内存空间,进入物理硬盘,便于长期保存.例如,最常见的是WEB服务器中的Session对象,当有10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些Session先序列化到硬盘中,等要用了,再把保存在硬盘中的对象还原

夯实Java基础系列22:一文读懂Java序列化和反序列化

本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客: www.how2playlife.com 本文参考 http://www.importnew.com/17964.html和 https://www.ibm.com/developerworks/cn/java/j-lo-serial/ 序列化与反序列化概念 序列化 (S

Json的序列化与反序列化

想想某一天,你在看LOL攻略的时候,系统突然崩溃了,接着浏览器出现了密密麻麻的LOL帐号和密码,你一定在想:"天啊,这次要发财了,说不定里面有超凡号或者王者号,我得赶紧全部记下来."然而说完你就惊呆了,那么多的帐号密码,而且全部写在了Json里面,一个一个复制粘贴要记到什么时候啊...如果这时候我在你身边,我一定会帮助你的,前提是,要分几个王者号给我噢...  言归正传. 上面举的例子虽然有点不太现实,但其实是想和大家说明一个问题,如果要解析Json或XML,请不要使用检索字符串的方式

深入分析Java的序列化与反序列化

阅读目录 Java对象的序列化如何对Java对象进行序列化与反序列化序列化及反序列化相关知识ArrayList的序列化ObjectOutputStream总结 序列化是一种对象持久化的手段.普遍应用在网络传输.RMI等场景中.本文通过分析ArrayList的序列化来介绍Java序列化的相关内容.主要涉及到以下几个问题: 怎么实现Java的序列化 为什么实现了java.io.Serializable接口才能被序列化 transient的作用是什么 怎么自定义序列化策略 自定义的序列化策略是如何被调

Java Object 对象序列化和反序列化

Java Object 对象序列化和反序列化 @author ixenos 对象序列化是什么 1.对象序列化就是把一个对象的状态转化成一个字节流. 我们可以把这样的字节流存储为一个文件,作为对这个对象的复制(深拷贝):在一些分布式应用中,我们还可以把对象的字节流发送到网络上的其他计算机. 反序列化是把流结构的对象恢复为其原有形式 2.Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长.但