一、 文件的读取

1. 有FileStrem,为什么还要StreamWriter和StreamRead

StreamWriter和StreamRead是用来读取文本文件的,每次只读取一行文本文件

二、 对象的序列化(二进制序列化)

1. 对象序列化是什么呢?

对象序列化是将对象(比如Person对象)。对象是稍纵即逝的,不仅程序重启、操作系统重启会造成对象的消失,就是退出函数范围等都可能造成对象的消失,序列化/反序列化就是为了保持对象的持久化。就像用DV录像(序列化)和播放器播放(反序列化)一样。

2. 反序列化步骤:

a) 创建二进制序列化器(或者叫做格式化器)

BinaryFormatter bf = new BinaryFormatter();

b) 开始执行反序列化

3. 为什么反序列化的时候需要原来定义Person类的那个程序集?

反序列化的时候,要返回一个对象,这个对象必须根据原来Person所在的程序集才能创建,也就是说Person.bin中包含的仅仅是一些数据,根据这些数据是无法在内存中创建对象的。只能是根据原来Person类型的程序集来创建对象,然后把person.bin中的数据一一对应进行赋值。

4. 总结:

对象序列化,只是对象的一些状态信息进行序列化(比如字段)。

对于方法之类的根本不进行序列化,也就是说person.bin中只包含字段名和字段值,根本没有方法信息。

但是反序列化的时候,,返回的是一个对象,那么只根据这些字段信息是无法创建对象的,所以这个时侯需要先根据原来的程序集,获取Person类型,然后在内存中创建一个Person对象然后在把反序列化得到的字段信息赋值给这个Person对象。

三、 正则表达式

【基础知识】.Net基础加强08天的更多相关文章

  1. Linux基础知识与基础命令

    Linux基础知识与基础命令 系统目录 Linux只有一个根目录,没有盘符的概念,文件目录是一个倒立的树形结构. 常用的目录功能 bin 与程序相关的文件 boot 与系统启动相关 cdrom 与Li ...

  2. java线程基础知识----线程基础知识

    不知道从什么时候开始,学习知识变成了一个短期记忆的过程,总是容易忘记自己当初学懂的知识(fuck!),不知道是自己没有经常使用还是当初理解的不够深入.今天准备再对java的线程进行一下系统的学习,希望 ...

  3. day63:Linux:nginx基础知识&nginx基础模块

    目录 1.nginx基础知识 1.1 什么是nginx 1.2 nginx应用场景 1.3 nginx组成结构 1.4 nginx安装部署 1.5 nginx目录结构 1.6 nginx配置文件 1. ...

  4. 这些C++基础知识的基础知识你都学会了吗?

    一.C++基础知识 新的数据类型 C语言中的数据类型  C++中新的数据类型 思考:新的数据类型有什么好处?请看下面的代码:  可以见得:新的类型使整个程序更加简洁,程序变得易读易懂!这个就是bool ...

  5. Ceph基础知识和基础架构认识

    1  Ceph基础介绍 Ceph是一个可靠地.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备存储和文件系统服务.在虚拟化领域里,比较常用到的是Cep ...

  6. Ceph 基础知识和基础架构认识

    1  Ceph基础介绍 Ceph是一个可靠地.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备存储和文件系统服务.在虚拟化领域里,比较常用到的是Cep ...

  7. 算法导论 - 基础知识 - 算法基础(插入排序&归并排序)

    在<算法导论>一书中,插入排序作为一个例子是第一个出现在该书中的算法. 插入排序: 对于少量元素的排序,它是一个有效的算法. 插入排序的工作方式像许多人排序一手扑克牌.开始时,我们手中牌为 ...

  8. 集合框架基础知识-----java基础知识

    Java集合框架 :接口:Collection.List .Set. Map:实现类:ArrayList.LinkedList.Vector.HashSet.TreeSet.HashMap.HashT ...

  9. web前端基础知识- Django基础

    上面我们已经知道Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Sessi ...

  10. jQuery基础知识--Form基础(续)

    下拉框应用 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...

随机推荐

  1. rtmp拉流测试工具

    http://www.cutv.com/demo/live_test.swf ================================================== ========== ...

  2. IOleItemContainer的接口定义

      IOleItemContainer的接口定义

  3. delphi模拟按键精灵自动控制PDF页面自动扩边的源代码

    需要的环境:Adobe Acrobat 7.0 Professional  和   Quite Imposing Plus 1.5d Acrobat plugin  (qi160.exe) 程序界面: ...

  4. HTTP请求之:PHP函数header常用功能

    1.页面重定向   当浏览器接受到头信息中的 Location: http://xxxx 后,就会自动跳转到 http://xxxx 指向的URL地址,这点有点类似用 js 写跳转.但是这个跳转只有浏 ...

  5. JS出现illegal character非法字符提示

    引用js文件,js文件内的汉字在页面显示乱码 解决方式: a. 保持js文件编码与jsp页面编码格式一致: b. 在引入js文件时,在script中添加charset=""属性,指 ...

  6. Selenium2+python自动化25-js处理日历控件(修改readonly属性)

    前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用j ...

  7. 基于Java的WebSocket推送【转载】

    http://www.cnblogs.com/tonyY/p/5495417.html

  8. Nginx-->进阶-->原理-->Nginx+php+fastcgi的原理与关系

    一.用户对动态PHP网页访问过程 用户浏览器发起对网页的访问:http://192.168.1.103/index.php 用户和nginx服务器进行三次握手进行TCP连接(忽略包括nginx访问控制 ...

  9. Android(Xamarin)之旅(三)

    前面两篇说到了Xamarin的安装和一些简单的控件,今天来说说一些对话框和提示信息,以及简单的布局元素. 一.对话框和提示信息 一.对话框 我们首先从简单的对话框开始. 1.普通对话框 在androi ...

  10. aceAdmin fuelux tree 从后台获取数据,并设置节点ID等属性

    如题,从后台封装数据,有两种方式渲染节点的数据: 1.全部节点加载 2.根据父节点加载子节点 首先,先介绍下第一种渲染方式: 后台返回数据格式(所有的附加属性,都可放在additionalParame ...