8.CSharp类对象相关-反序列化
8.1 知识点
反序列化文件中数据
主要类
- FileStream文件流类
- BinaryFormatter 2进制格式化类
主要方法
- Deserizlize:通过文件流打开指定的2进制数据文件
using (FileStream fileStream = File.Open(Application.dataPath + "/Lesson07_CSharp类对象相关_序列化1.linwentao", FileMode.Open, FileAccess.Read))
{
//申明一个 2进制格式化类
BinaryFormatter binaryFormatter = new BinaryFormatter();
//反序列化
Person person = binaryFormatter.Deserialize(fileStream) as Person;
fileStream.Close();
}
反序列化网络传输过来的2进制数据
主要类
- MemoryStream内存流类
- BinaryFormatter 2进制格式化类
主要方法
- Deserizlize
目前没有网络传输,我们还是直接从文件中获取,模拟网络加载的字节数组
//从文件中读取字节数组
byte[] bytes = File.ReadAllBytes(Application.dataPath + "/Lesson07_CSharp类对象相关_序列化1.linwentao");
//申明内存流对象,一开始就把字节数组传输进去
using (MemoryStream memoryStream = new MemoryStream(bytes))
{
//申明一个 2进制格式化类
BinaryFormatter binaryFormatter = new BinaryFormatter();
//反序列化
Person person = binaryFormatter.Deserialize(memoryStream) as Person;
memoryStream.Close();
}
8.2 知识点代码
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using UnityEngine;
public class Lesson08_CSharp类对象相关_反序列化 : MonoBehaviour
{
void Start()
{
#region 知识点一 反序列化文件中数据
//主要类
//FileStream文件流类
//BinaryFormatter 2进制格式化类
//主要方法
//Deserizlize
//通过文件流打开指定的2进制数据文件
using (FileStream fileStream = File.Open(Application.dataPath + "/Lesson07_CSharp类对象相关_序列化1.linwentao",
FileMode.Open, FileAccess.Read))
{
//申明一个 2进制格式化类
BinaryFormatter binaryFormatter = new BinaryFormatter();
//反序列化
Person person = binaryFormatter.Deserialize(fileStream) as Person;
fileStream.Close();
}
#endregion
#region 知识点二 反序列化网络传输过来的2进制数据
//主要类
//MemoryStream内存流类
//BinaryFormatter 2进制格式化类
//主要方法
//Deserizlize
//目前没有网络传输 我们还是直接从文件中获取 模拟网络加载的字节数组
byte[] bytes = File.ReadAllBytes(Application.dataPath + "/Lesson07_CSharp类对象相关_序列化1.linwentao");
//申明内存流对象 一开始就把字节数组传输进去
using (MemoryStream memoryStream = new MemoryStream(bytes))
{
//申明一个 2进制格式化类
BinaryFormatter binaryFormatter = new BinaryFormatter();
//反序列化
Person person = binaryFormatter.Deserialize(memoryStream) as Person;
memoryStream.Close();
}
#endregion
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com