diff --git a/src/main/java/com/tagtraum/perf/gcviewer/exp/impl/DataWriterFactory.java b/src/main/java/com/tagtraum/perf/gcviewer/exp/impl/DataWriterFactory.java index de0b1e9b..5f7092f0 100644 --- a/src/main/java/com/tagtraum/perf/gcviewer/exp/impl/DataWriterFactory.java +++ b/src/main/java/com/tagtraum/perf/gcviewer/exp/impl/DataWriterFactory.java @@ -47,15 +47,16 @@ public static DataWriter getDataWriter(File file, DataWriterType type) throws IO * @throws IOException unknown DataWriter or problem creating file */ public static DataWriter getDataWriter(File file, DataWriterType type, Map configuration) throws IOException { - FileOutputStream outputStream = new FileOutputStream(file); - switch (type) { - case PLAIN : return new PlainDataWriter(outputStream); - case CSV : return new CSVDataWriter(outputStream); - case CSV_TS : return new CSVTSDataWriter(outputStream); - case SIMPLE : return new SimpleGcWriter(outputStream); - case SUMMARY : return new SummaryDataWriter(outputStream, configuration); - case PNG : return new PNGDataWriter(outputStream, configuration); - default : throw new IOException(LocalisationHelper.getString("datawriterfactory_instantiation_failed") + " " + file); + try (FileOutputStream outputStream = new FileOutputStream(file)) { + switch (type) { + case PLAIN : return new PlainDataWriter(outputStream); + case CSV : return new CSVDataWriter(outputStream); + case CSV_TS : return new CSVTSDataWriter(outputStream); + case SIMPLE : return new SimpleGcWriter(outputStream); + case SUMMARY : return new SummaryDataWriter(outputStream, configuration); + case PNG : return new PNGDataWriter(outputStream, configuration); + default : throw new IOException(LocalisationHelper.getString("datawriterfactory_instantiation_failed") + " " + file); + } } }