/// <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); } }
/// <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); } }