文件流的使用以及序列化和反序列化的方法使用

步骤一:引入IO文件和二进制格式序列化文件

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
步骤二:将图书对象保存到文件(运用文件流存储图书列表)

FileStream fs = new FileStream("bookList.obj", FileMode.Create);//在根目录下创建bookList.obj文件
BinaryFormatter bf = new BinaryFormatter();//创建二进制格式化器  bookList不能直接加到文件流对象中需要二进制格式化器进行序列化(简单理解成把水变为冰的过程)
bf.Serialize(fs,bookList);//把当前集合序列化到文件
fs.Close();//关闭文件流

步骤三:将对象变为可序列化的对象

在类前面加上[Serealizable]

步骤四:从文件中读取图书列表

if(!File.Exists("bookList.obj")){
       return;
     }
 FileStream fs = new FileStream("bookList.obj", FileMode.Open);
 BinaryFormatter bs = new BinaryFormatter();
 this.bookList=(List<Book>)bs.Deserialize(fs);
 fs.Close();

原文地址:https://www.cnblogs.com/cuig/p/8719558.html

时间: 2024-10-25 07:30:25

文件流的使用以及序列化和反序列化的方法使用的相关文章

Java基础IO流(四)序列化与反序列化

对象的序列化与反序列化: 对象的序列化,就是将Object转换成byte序列,反之叫对象的反序列化. 序列化流(ObjectOutInputStream),是过滤流 -------writeObject 反序列化流(ObjectInputStream)-----raedObject 序列化接口(Serializable) 对象必须实现序列化接口,才能进行序列化,否则出现异常 这个接口,没有任何方法,只是一个标准. 案例描述:Student,将它序列化到文件中,再反序列化读出. Student类:

【C#小知识】C#中一些易混淆概念总结(九)---------异常,文件流对象,.NET序列化,多线程

终于有时间来完成这个系列的最后一篇关于C#中异常,文件流对象,序列化,多线程问题的总结. 首先就来看关于异常的相关知识吧 一,异常 首先区分三个概念:警告,异常和错误.不管对于编程新手或者是老手对这三个概念都应该是非常熟悉,且是经常遇到的. 警告:在程序中出现,对于程序的执行没有影响. 异常:在运行的时候发生,一旦发生程序就会停止. 错误:一直是 指程序不符合语法规范. 在C#中的标准抛出异常的语句如下: try { //尝试执行的语句 } catch (Exception) { //抛出异常的

对象、流、磁盘、序列化、反序列化等概念之间的关系

(1)对象—到—> 流.磁盘.内存.网络等等,称之为序列化 :反之称之为“反序列化” (2)磁盘 —到—>  流 ,称之为 “流化”, 然后,流—到—>对象,称之为“反序列化” (3)对象 .流.内存.网络—到—>磁盘,通常也称之为 “持久化” 原文地址:https://www.cnblogs.com/changbaishan/p/11567320.html

C# 对象序列化 与反序列化 封装方法

/// <summary> /// BinaryFormatter序列化 /// </summary> /// <param name="item">对象</param> public static string ToBinary<T>(T item) { BinaryFormatter formatter = new BinaryFormatter(); using (MemoryStream ms = new Memory

C#对象序列化与反序列化

1.对象序列化的介绍 (1).NET支持对象序列化的几种方式 二进制序列化:对象序列化之后是二进制形式的,通过BinaryFormatter类来实现的,这个类位于System.Runtime.Serialization.Formatters.Binary命名空间下. SOAP序列化:对象序列化之后的结果符合SOAP协议,也就是可以通过SOAP 协议传输,通过System.Runtime.Serialization.Formatters.Soap命名空间下的SoapFormatter类来实现的.

【幻化万千戏红尘】qianfengDay20-java基础学习:数据流、随机读取文件流RandomAccessFile

课程回顾: 流:转换流:字符和字节的转换对象流(Object):序列化,反序列化 打印流(Print):打印各种数据类型的数据 今日内容:数据流(Data):支持将基本数据类型写出,字节流,处理流1.DataOutputStream:数据输出字节流常用方法:writeXXX:写出基本数据类型的数据writeUTF:写出字符串2.DataInputStream:数据输入字节流常用方法:readXXX:读取基本数据类型的数据readUTF:读取字符串 随机读取文件类:拥有写出和读取基本数据类型的方法

12.C#对象序列化与反序列化

1.对象序列化的介绍 (1).NET支持对象序列化的几种方式 二进制序列化:对象序列化之后是二进制形式的,通过BinaryFormatter类来实现的,这个类位于System.Runtime.Serialization.Formatters.Binary命名空间下. SOAP序列化:  对象序列化之后的结果符合SOAP协议,也就是可以通过SOAP 协议传输,通过System.Runtime.Serialization.Formatters.Soap命名空间下的SoapFormatter类来实现的

42. C# -- 序列化和反序列化

1. 对象序列化的介绍 (1) .NET支持对象序列化的几种方式 (2) 几种序列化的区别 (3) 使用特性对序列化的控制 2. 使用二进制序列化和反序列化 (1) 二进制序列化与反序列化的程序示例 (2) 总结 3. 使用SOAP方式序列化和反序列化 (1) SOAP序列化与反序列化的程序示例 (2) 总结 4. 使用XML方式序列化和反序列化 (1) XML序列化与反序列化的程序示例 (2) 总结 5. XML序列化对象详解 (1) 说明 (2) 使用XmlElement(默认值) (3) 

什么是序列化与反序列化

什么是序列化与反序列化??? 序列化和反序列化,我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用. 当两个进程在进行远程通信时,彼此可以发送各种类型的数据.无论是何种类型的数据,都会以二进制序列的形式在网络上传送.发送方需要把这个对象转换为字节序列,才能在网络上传送:接收方则需要把字节序列再恢复为对象. 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化.