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

///


/// 2进制数据管理器
///

public class BinaryDataMgr
{
private static BinaryDataMgr instance = new BinaryDataMgr();
public static BinaryDataMgr Instance => instance;

/// <summary>
/// 数据存储的位置
/// </summary>
private static string SAVE_PATH = Application.persistentDataPath + "/Data/";

private BinaryDataMgr()
{

}


/// <summary>
/// 存储类对象数据
/// </summary>
/// <param name="obj"></param>
/// <param name="fileName"></param>
public void Save(object obj, string fileName)
{
    //先判断路径文件夹有没有
    if (!Directory.Exists(SAVE_PATH))
        Directory.CreateDirectory(SAVE_PATH);

    using (FileStream fs = new FileStream(SAVE_PATH + fileName + ".tang", FileMode.OpenOrCreate, FileAccess.Write))
    {
        BinaryFormatter bf = new BinaryFormatter();
        bf.Serialize(fs, obj);
        fs.Close();
    }
}

/// <summary>
/// 读取2进制数据转换成对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="fileName"></param>
/// <returns></returns>
public T Load<T>(string fileName) where T:class
{
    //如果不存在这个文件 就直接返回泛型对象的默认值
    if( !File.Exists(SAVE_PATH + fileName + ".tang") )
        return default(T);

    T obj;
    using (FileStream fs = File.Open(SAVE_PATH + fileName + ".tang", FileMode.Open, FileAccess.Read))
    {
        BinaryFormatter bf = new BinaryFormatter();
        obj = bf.Deserialize(fs) as T;
        fs.Close();
    }

    return obj;
}

}

'''