public static ArrayList<RecentGame> getSavedGames(Summoner summoner) throws Exception {
   ArrayList<RecentGame> ret = new ArrayList<RecentGame>();
   String gamesDirectory =
       String.format(
           gamesDirectoryFormat, ServerInfo.currentServerInfo.region, summoner.getSummonerID());
   for (File game : FileSystem.getFile(gamesDirectory).listFiles()) {
     if (!game.getName().equals("README")) {
       FileInputStream fis = new FileInputStream(game.getAbsolutePath());
       ObjectInputStream ois = new ObjectInputStream(fis);
       ret.add((RecentGame) ois.readObject());
       ois.close();
       fis.close();
     }
   }
   return ret;
 }
 public static void save(RecentGame game, Summoner summoner) throws IOException {
   ObjectOutputStream objectOutputStream = null;
   RandomAccessFile raf = null;
   try {
     // TODO: write to XML or something instead of Java's silly format
     String gameFileString =
         String.format(
             gameFileFormat,
             ServerInfo.currentServerInfo.region,
             summoner.getSummonerID(),
             game.getGameID());
     raf = new RandomAccessFile(FileSystem.getFile(gameFileString), "rw");
     FileOutputStream fos = new FileOutputStream(raf.getFD());
     objectOutputStream = new ObjectOutputStream(fos);
     objectOutputStream.writeObject(game);
   } finally {
     if (objectOutputStream != null) {
       objectOutputStream.close();
     }
     if (raf != null) {
       raf.close();
     }
   }
 }