/** * Method to export database to CSV * * @param file The file in which to export. */ public void exportToCSV(File file) { TopiaContext newContext = null; try { // Get all the episodes newContext = serviceContext.getTransaction(); EpisodeDAO episodeDAO = EpisodesManagerDAOHelper.getEpisodeDAO(newContext); Collection<Episode> episodes = episodeDAO.findAll(); log.info("Exporting : " + episodes.size() + " episodes"); BufferedWriter writer = null; try { // Create a writer for the directory/filename.csv file Writer out = new FileWriter(file); writer = new BufferedWriter(out); // Write the column headers writer.write( "Show;Season;Season Number;Episode;" + "Episode Airing Date;Acquired;Viewed;Episode Number\n"); // Run through all episodes for (Episode episode : episodes) { log.info("Exporting episode : " + episode.getTitle()); // Write a line for each episode, with also the show and season infos // Write the show info writer.write(episode.getSeason().getShow().getTitle() + ";"); // Write the season info writer.write(episode.getSeason().getNumber() + ";"); // Write the episode info writer.write( episode.getTitle() + ";" + episode.getAiringDate() + ";" + episode.getAcquired() + ";" + episode.getViewed() + ";" + episode.getNumber()); // Go to next line writer.write("\n"); } writer.close(); } catch (IOException ioe) { newContext.closeContext(); log.error("An error occured while trying to export database to CSV", ioe); } finally { try { writer.close(); } catch (IOException eee) { log.error("Error trying to close file"); } catch (NullPointerException eee) { log.debug("Stream was not existing"); } } } catch (TopiaException te) { log.error("An error occurred", te); } finally { serviceContext.closeTransaction(newContext); } }