本篇博客不讲理论!

如果想看理论这里附上三篇博客:

Json:https://blog.csdn.net/qq_48705696/article/details/116536267?spm=1001.2014.3001.5501

XML:https://blog.csdn.net/qq_48705696/article/details/115301270?spm=1001.2014.3001.5501

序列化与反序列化:https://www.cnblogs.com/yzenet/p/3622833.html


直接上干货!

1、将需要保存的东西(比如类、结构)前加上可序列化的标识[Serializable],像下面这样:

2、读取与保存的源代码:

/// </summary>
/// <param name="path">要保存的路径,如:C:\a.obj,a.obj是自己的取的文件名和扩展名,可以随便取,没有的路径都会自动生成</param>
/// 注:路径可以随便写,会自动生成:如:C:\A\B\C\test.obj 程序会自动生成A,B,C目录
/// 注:保存文件后缀推荐使用 .json / .xml
/// <param name="obj">要保存的对象,object:所有类的父基类</param>
public static void SaveObject(string path, object obj)
{IFormatter formatter = new BinaryFormatter();try{Stream stream = new FileStream(@"" + path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);formatter.Serialize(stream, obj);stream.Close();Console.WriteLine("[" + path + "]文件保存成功...");//将对象写入到本地}catch (Exception){Console.WriteLine("[" + path + "]文件保存失败...");}
}/// </summary>
/// 注:读取时像这样使用 Person p1 = ReadObject<Person>(@"路径");
/// <typeparam name="T">返回指定的类型</typeparam>
/// <param name="path">文件的路径</param>
/// <returns></returns>
public static T ReadObject<T>(string path)
{try{IFormatter formatter = new BinaryFormatter();Stream stream = new FileStream(@"" + path, FileMode.Open, FileAccess.Read, FileShare.None);T myObj = (T)formatter.Deserialize(stream);stream.Close();return myObj;}catch (Exception){if (File.Exists(path))//如果文件不存在,创建文件{//...}else{File.Create(path).Dispose();}}T t = default(T);return t;
}

c#_序列化与反序列化的应用相关推荐

  1. 序列化与反序列化_序列化和反序列化JAVA成长之路

    一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化.把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放 ...

  2. 序列每天从0开始_序列化、反序列化原理和Protobuf实现机制

    1.基本概念 1.1 什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程: (2)序列化:对象序列化的最主要的 ...

  3. 字段变成小写 序列化_序列化/反序列化

    序列化是干啥用的? 序列化的原本意图是希望对一个Java对象作一下"变换",变成字节序列,这样一来方便持久化存储到磁盘,避免程序运行结束后对象就从内存里消失,另外变换成字节序列也更 ...

  4. java 序列化概念和作用_结合代码详细解读Java序列化与反序列化概念理解

    Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨. 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列 ...

  5. Java中如何引用另一个类里的集合_【18期】Java序列化与反序列化三连问:是什么?为什么要?如何做?...

    Java序列化与反序列化是什么? Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程: 序列化:对象序列化的最主要的用处就是在传递和保存对象 ...

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

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  7. 序列化与反序列化的单例模式_序列化代理模式

    序列化与反序列化的单例模式 在上一篇文章中 ,我谈到了一般的序列化. 这是更加集中的内容,并提供了一个细节: 序列化代理模式 . 这是处理序列化中许多问题的一种好方法,通常是最好的方法. 如果开发人员 ...

  8. 序列化和反序列化的概念_序列化的概念

    序列化和反序列化的概念 讨论了为什么Optional不可序列化以及如何处理(即将推出)之后,让我们仔细看看序列化. 总览 这篇文章介绍了序列化的一些关键概念. 它尝试精简地执行此操作,而不会涉及太多细 ...

  9. python 保存文件 吃内存_孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化...

    孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.什么是序列化与反序列化 序列化是指将内存中的数据进行指 ...

最新文章

  1. 使用Windows8开发Metro风格应用三
  2. Puppet 实验三 安装和配置
  3. hdu hide handkerchief
  4. 零基础学习Python容易出现哪些误区?
  5. (cljs/run-at (JSVM. :all) 一次说白DataType、Record和Protocol)
  6. 请简述计算机硬件系统的运行过程,操作系统简述题
  7. 今天的这个小成绩,需要向阿里云的朋友报告一下!
  8. Spring常用注解 - 使用注解来构造IoC容器
  9. golang 三种接口的定义方式
  10. 别让for循环毁了你的程序(二)
  11. 评分卡模型之数据预处理
  12. Julia: Flux.jl尝试
  13. SpringBoot通用的敏感词拦截
  14. Ubuntu下两款划词翻译神器
  15. 计算机电源输出定义,电脑电源接口定义图解
  16. 计算机功能转动怎么设定,怎么旋转电脑屏幕
  17. C语言:按照样例输出打印一个长方形图形
  18. 软考十大管理流程图知识点整理
  19. mac不断弹出提示 要信任此电脑吗
  20. 脚手架--------Yeoman基本使用

热门文章

  1. pycharm 常用快捷键整理
  2. TimeQuest约束外设之诡异的Create Generated Clocks用法
  3. 如何设置MathType下标的正斜体
  4. oracle双机python连接_Python连接Oracle
  5. JAVA min()_Java min()方法
  6. 钱学森最后一次系统谈话:大学要有创新精神
  7. python count()计算字符出现的频数
  8. 初步学习TypeScript
  9. poj2774 sa模版
  10. Scheduler(Spring)