c#_序列化与反序列化的应用
本篇博客不讲理论!
如果想看理论这里附上三篇博客:
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#_序列化与反序列化的应用相关推荐
- 序列化与反序列化_序列化和反序列化JAVA成长之路
一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化.把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放 ...
- 序列每天从0开始_序列化、反序列化原理和Protobuf实现机制
1.基本概念 1.1 什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程: (2)序列化:对象序列化的最主要的 ...
- 字段变成小写 序列化_序列化/反序列化
序列化是干啥用的? 序列化的原本意图是希望对一个Java对象作一下"变换",变成字节序列,这样一来方便持久化存储到磁盘,避免程序运行结束后对象就从内存里消失,另外变换成字节序列也更 ...
- java 序列化概念和作用_结合代码详细解读Java序列化与反序列化概念理解
Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨. 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列 ...
- Java中如何引用另一个类里的集合_【18期】Java序列化与反序列化三连问:是什么?为什么要?如何做?...
Java序列化与反序列化是什么? Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程: 序列化:对象序列化的最主要的用处就是在传递和保存对象 ...
- java序列化_夯实Java基础系列22:一文读懂Java序列化和反序列化
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- 序列化与反序列化的单例模式_序列化代理模式
序列化与反序列化的单例模式 在上一篇文章中 ,我谈到了一般的序列化. 这是更加集中的内容,并提供了一个细节: 序列化代理模式 . 这是处理序列化中许多问题的一种好方法,通常是最好的方法. 如果开发人员 ...
- 序列化和反序列化的概念_序列化的概念
序列化和反序列化的概念 讨论了为什么Optional不可序列化以及如何处理(即将推出)之后,让我们仔细看看序列化. 总览 这篇文章介绍了序列化的一些关键概念. 它尝试精简地执行此操作,而不会涉及太多细 ...
- python 保存文件 吃内存_孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化...
孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.什么是序列化与反序列化 序列化是指将内存中的数据进行指 ...
最新文章
- 使用Windows8开发Metro风格应用三
- Puppet 实验三 安装和配置
- hdu hide handkerchief
- 零基础学习Python容易出现哪些误区?
- (cljs/run-at (JSVM. :all) 一次说白DataType、Record和Protocol)
- 请简述计算机硬件系统的运行过程,操作系统简述题
- 今天的这个小成绩,需要向阿里云的朋友报告一下!
- Spring常用注解 - 使用注解来构造IoC容器
- golang 三种接口的定义方式
- 别让for循环毁了你的程序(二)
- 评分卡模型之数据预处理
- Julia: Flux.jl尝试
- SpringBoot通用的敏感词拦截
- Ubuntu下两款划词翻译神器
- 计算机电源输出定义,电脑电源接口定义图解
- 计算机功能转动怎么设定,怎么旋转电脑屏幕
- C语言:按照样例输出打印一个长方形图形
- 软考十大管理流程图知识点整理
- mac不断弹出提示 要信任此电脑吗
- 脚手架--------Yeoman基本使用