您的位置:首页 > 其它

二进制BinaryFormatter 泛型 序列化与反序列化 (保存文件到本地和读取)

2017-06-08 09:38 483 查看
网上找到一些方法,二进制序列化现对于json不可视,稍加改进封装了下,代码具体如下

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System;
using System.Runtime.Serialization.Formatters.Binary;

public class SerializeTHFile
{

public static void SerializeMethod<T>(T tempSerializeList)   // 二进制序列化
{
//路径
string path = Application.isEditor ? Application.persistentDataPath.Replace("/" + Application.productName, "") : Application.persistentDataPath;
path += "/保存文件名称" ;
FileStream fs = new FileStream(path, FileMode.Create);
try
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, tempSerializeList);
fs.Close();
}
catch (Exception ex)
{
fs.Close();
Debug.Log(ex);
}
}
public static T DeserializeMethod<T>()   // 二进制反序列化
{
T tempDeserializeList ;
string path = Application.isEditor ? Application.persistentDataPath.Replace("/" + Application.productName, "") : Application.persistentDataPath;
path += "/读取文件名称" ;
FileInfo binaryFile = new FileInfo(path);
if (!binaryFile.Exists)
{
Debug.Log("反序列化文件不存在");
return default(T);
}
FileStream fs = new FileStream(path, FileMode.Open);
try
{
BinaryFormatter bf = new BinaryFormatter();

tempDeserializeList = (T)bf.Deserialize(fs);
fs.Close();
return tempDeserializeList;
}
catch (Exception ex)
{
Debug.LogWarning(ex);
fs.Close();
File.Delete(path);
return default(T);
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐