Advertisement
Guest User

savefilemanager

a guest
Jul 2nd, 2015
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.94 KB | None | 0 0
  1. /// <summary>
  2. /// Provides functionality to read and write save game files.
  3. /// </summary>
  4. public class SaveFileManager
  5. {
  6.     /// <summary>
  7.     /// Initializes the SaveFileManager.
  8.     /// </summary>
  9.     public SaveFileManager(TracerCollection tracers)
  10.     {
  11.         formatter = new BinaryFormatter();
  12.         tracer = tracers["SAVE"];
  13.     }
  14.  
  15.     BinaryFormatter formatter;
  16.     TraceSource tracer;
  17.  
  18.     /// <summary>
  19.     /// Writes a save game to the specified binary file.
  20.     /// </summary>
  21.     /// <param name="data">The save game that should be written.</param>
  22.     /// <param name="filename">The path of the file that should be written. If it already exists, it is overwritten.</param>
  23.     public void WriteSaveFile(SaveGameData data, string filename)
  24.     {
  25.         tracer.TraceEvent(TraceEventType.Start, 0, "Begin WriteSaveFile");
  26.  
  27.         Stream stream = new FileStream(filename, FileMode.Create);
  28.         tracer.TraceInformation("Successfully opened FileStream to {0}", filename);
  29.  
  30.         formatter.Serialize(stream, data);
  31.         tracer.TraceInformation("Successfully wrote data to file.");
  32.  
  33.         stream.Close();
  34.         tracer.TraceEvent(TraceEventType.Stop, 0, "End WriteSaveFile");
  35.     }
  36.  
  37.     /// <summary>
  38.     /// Reads a save game from the specified binary file.
  39.     /// </summary>
  40.     /// <param name="filename">The path of the file that should be read.</param>
  41.     public SaveGameData ReadSaveFile(string filename)
  42.     {
  43.         tracer.TraceEvent(TraceEventType.Start, 1, "Begin ReadSaveFile");
  44.  
  45.         Stream stream = new FileStream(filename, FileMode.Open);
  46.         tracer.TraceInformation("Successfully opened FileStream to {0}", filename);
  47.  
  48.         SaveGameData data = (SaveGameData)formatter.Deserialize(stream);
  49.         tracer.TraceInformation("Successfully read data from file.");
  50.  
  51.         stream.Close();
  52.         tracer.TraceEvent(TraceEventType.Stop, 1, "End ReadSaveFile");
  53.         return data;
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement