Esempio n. 1
0
        /// <summary>
        /// 指定されたファイルを読み取りDataStoreにデータをデシリアライズします。
        /// 指定されたファイルが存在していない場合は例外を発生させます。
        /// </summary>
        public void Load(string fileFullPath, [NotNull] BaseDataSerializer dataSerializer, Action onSuccess = null, Action onFailure = null)
        {
            lock (_lockObject) {
                try {
                    if (!File.Exists(fileFullPath))
                    {
                        throw new IOException(string.Format("指定されたファイルが存在しません! 指定されたファイル = {0}", fileFullPath));
                    }

                    using (StreamReader reader = GetStreamReader(fileFullPath)) {
                        dataSerializer.Deserialize(reader.ReadToEnd());
                    }
                } catch (Exception e) {
#if DEBUG_ON
                    Debug.LogException(e);
#endif
                    EventUtility.SafeInvokeAction(onFailure);
                    return;
                }

                EventUtility.SafeInvokeAction(onSuccess);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// DataStoreのデータをシリアライズして指定されたファイルに保存します。
        /// 指定されたファイルが存在している場合は上書き、存在していない場合は新規作成します。
        /// </summary>
        public void Save(string fullPath, [NotNull] BaseDataSerializer dataSerializer, Action onSuccess = null, Action onFailure = null)
        {
            lock (_lockObject) {
                try {
                    if (File.Exists(fullPath))
                    {
                        File.Delete(fullPath);
                    }

                    string rawData = dataSerializer.Serialize();
                    using (StreamWriter writer = GetStreamWriter(fullPath)) {
                        writer.Write(rawData);
                    }
                } catch (Exception e) {
#if DEBUG_ON
                    Debug.LogException(e);
#endif
                    EventUtility.SafeInvokeAction(onFailure);
                    return;
                }

                EventUtility.SafeInvokeAction(onSuccess);
            }
        }