chenxin
2020-12-09 7fcfe2b029ffad2c35630d411d283c95ada7df5f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System.IO;
using UnityEngine;
 
namespace Core.Data
{
    /// <summary>
    /// Json implementation of file saver
    /// </summary>
    public class JsonSaver<T> : FileSaver<T> where T : IDataStore
    {
        public JsonSaver(string filename)
            : base(filename)
        {
        }
 
        /// <summary>
        /// Save the specified data store
        /// </summary>
        public override void Save(T data)
        {
            string json = JsonUtility.ToJson(data);
 
            using (StreamWriter writer = GetWriteStream())
            {
                writer.Write(json);
            }
        }
 
        /// <summary>
        /// Load the specified data store
        /// </summary>
        public override bool Load(out T data)
        {
            if (!File.Exists(m_Filename))
            {
                data = default(T);
                return false;
            }
 
            using (StreamReader reader = GetReadStream())
            {
                data = JsonUtility.FromJson<T>(reader.ReadToEnd());
            }
 
            return true;
        }
    }
}