ZERO_BEYOND

博客园 首页 联系 订阅 管理

1.二进制

    private static void SaveByBinary()
    {
        //创建二进制格式化程序
        BinaryFormatter bf = new BinaryFormatter();
        //创建一个文件流
        FileStream fs = File.Create(GetFilePath(SaveDataType));
        //二进制方法序列化对象
        bf.Serialize(fs, GameData);
        //关闭流
        fs.Close();
    }

    private static void LoadByBinary()
    {
        //创建二进制格式化程序
        BinaryFormatter bf = new BinaryFormatter();
        //打开一个文件流
        FileStream fs = File.Open(GetFilePath(SaveDataType), FileMode.Open);
        //二进制方法序列化对象
        GameData = (SaveData)bf.Deserialize(fs);
        //关闭流
        fs.Close();
    }

2.Json

    private static void SaveByJson()
    {
        //将SaveData对象转换成json格式的字符串
        string _saveJson = JsonMapper.ToJson(GameData);
        //将字符串写到文件中
        StreamWriter sw = new StreamWriter(GetFilePath(SaveDataType));
        //写入
        sw.Write(_saveJson);
        //关闭流
        sw.Close();
    }

    private static void LoadByJson()
    {
        //创建流读取文件
        StreamReader sr = new StreamReader(GetFilePath(SaveDataType));
        //将读到的流转换成字符串
        string _saveJson = sr.ReadToEnd();
        GameData = JsonMapper.ToObject<SaveData>(_saveJson);
        //关闭流
        sr.Close();
    }

3.Xml

过于繁琐,仅提供大概步骤

    private static void SaveByXml()
    {
        //将SaveData对象转换成json格式的字符串
        string _saveJson = JsonMapper.ToJson(GameData);
        /*步骤
         * 1.创建xml文档 XmlDocument xmlDoc = new XmlDocument();
         * 2.创建根节点,设置根节点属性 可有可无
         * 3.创建根节点中的元素及元素中的元素,并添加到根节点中 xxx.AppendChild(elm); root.AppendChild(xxx);
         */
    }

    private static void LoadByXml()
    {
        /*步骤
         * 1.加载xml文档 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(GetFilePath(SaveDataType));
         * 2.通过节点名获取元素 XmlNodeList xxx = xmlDoc.GetElementsByTagName("xxx");
         * 3.遍历节点子节点,赋值
         */
    }

4.PlayerPrefs

    private static void SaveByPlayerPrefs()
    {
        //将SaveData对象转换成json格式的字符串
        string _saveJson = JsonMapper.ToJson(GameData);
        PlayerPrefs.SetString("SaveData", _saveJson);
        PlayerPrefs.Save();
    }

    private static void LoadByPlayerPrefs()
    {
        string _saveJson = PlayerPrefs.GetString("SaveData");
        GameData = JsonMapper.ToObject<SaveData>(_saveJson);
    }

 

 
posted on 2023-07-15 11:44  ZERO_BEYOND  阅读(243)  评论(0)    收藏  举报