Class PersistenceManager

java.lang.Object
com.example.renderer.singleton.PersistenceManager

public class PersistenceManager extends Object
  • Method Details

    • getInstance

      public static PersistenceManager getInstance()
      获取PersistenceManager单例实例

      该方法线程安全,始终返回同一个实例。

      Returns:
      全局唯一的PersistenceManager实例(永不为null)
      See Also:
      • 私有构造函数
    • saveShapesToFile

      public void saveShapesToFile(List<Shape> shapes, String filePath) throws IOException
      将图形列表序列化为JSON格式并保存到指定文件

      该方法会覆盖目标文件的所有内容,使用UTF-8编码写入。

      Parameters:
      shapes - 要保存的图形列表(非null)
      filePath - 目标文件路径(非null或空)
      Throws:
      NullPointerException - 如果shapes或filePath为null
      IllegalArgumentException - 如果filePath为空字符串
      IOException - 如果文件写入失败或路径不可访问
      com.google.gson.JsonIOException - 如果JSON序列化过程中发生错误
    • loadShapesFromFile

      public List<Shape> loadShapesFromFile(String filePath) throws IOException
      从JSON文件加载图形列表

      该方法会读取指定JSON文件并反序列化为图形对象列表。 支持处理多态类型的图形对象。

      Parameters:
      filePath - 要读取的文件路径(非null或空)
      Returns:
      包含所有反序列化图形对象的不可修改列表
      Throws:
      NullPointerException - 如果filePath为null
      IllegalArgumentException - 如果filePath为空字符串
      FileNotFoundException - 如果指定文件不存在
      IOException - 如果文件读取失败
      com.google.gson.JsonParseException - 如果JSON格式不合法
      com.google.gson.JsonSyntaxException - 如果JSON与目标类型不匹配
      IllegalStateException - 如果反序列化后的数组为null