diff --git a/forge-core/src/main/java/forge/util/FileUtil.java b/forge-core/src/main/java/forge/util/FileUtil.java index a969b6367b5..40c463a106a 100644 --- a/forge-core/src/main/java/forge/util/FileUtil.java +++ b/forge-core/src/main/java/forge/util/FileUtil.java @@ -17,26 +17,18 @@ */ package forge.util; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.PrintWriter; -import java.io.Reader; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; + +import java.io.*; import java.net.URL; +import java.nio.file.Files; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.concurrent.Callable; import java.util.regex.Pattern; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.tuple.Pair; - /** *
* FileUtil class.
@@ -117,8 +109,8 @@ public final class FileUtil {
File source = new File(sourceFilename);
if (!source.exists()) { return; } //if source doesn't exist, nothing to copy
- try (InputStream is = new FileInputStream(source);
- OutputStream os = new FileOutputStream(new File(destFilename))){
+ try (InputStream is = Files.newInputStream(source.toPath());
+ OutputStream os = Files.newOutputStream(new File(destFilename).toPath())){
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) > 0) {
diff --git a/forge-gui-desktop/src/main/java/forge/gui/framework/SLayoutIO.java b/forge-gui-desktop/src/main/java/forge/gui/framework/SLayoutIO.java
index c6dbe1e04d4..803407515b0 100644
--- a/forge-gui-desktop/src/main/java/forge/gui/framework/SLayoutIO.java
+++ b/forge-gui-desktop/src/main/java/forge/gui/framework/SLayoutIO.java
@@ -1,31 +1,5 @@
package forge.gui.framework;
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.Point;
-import java.awt.Rectangle;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map.Entry;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import javax.swing.border.EmptyBorder;
-import javax.xml.stream.XMLEventFactory;
-import javax.xml.stream.XMLEventReader;
-import javax.xml.stream.XMLEventWriter;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.events.Attribute;
-import javax.xml.stream.events.StartElement;
-import javax.xml.stream.events.XMLEvent;
-
import forge.Singletons;
import forge.gui.FThreads;
import forge.gui.SOverlayUtils;
@@ -42,6 +16,19 @@ import forge.util.maps.MapOfLists;
import forge.view.FFrame;
import forge.view.FView;
+import javax.swing.border.EmptyBorder;
+import javax.xml.stream.*;
+import javax.xml.stream.events.Attribute;
+import javax.xml.stream.events.StartElement;
+import javax.xml.stream.events.XMLEvent;
+import java.awt.*;
+import java.io.*;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.concurrent.atomic.AtomicBoolean;
+
/**
* Handles layout saving and loading.
*
@@ -297,12 +284,9 @@ public final class SLayoutIO {
}
final XMLOutputFactory out = XMLOutputFactory.newInstance();
- FileOutputStream fos = null;
XMLEventWriter writer = null;
- try {
+ try(FileOutputStream fos = new FileOutputStream(fWriteTo);) {
String layoutSerial = getLayoutSerial(file.defaultLoc);
-
- fos = new FileOutputStream(fWriteTo);
writer = out.createXMLEventWriter(fos);
final List
@@ -452,19 +423,20 @@ public class QuestDataIO {
}
private static void savePacked(final String f, final XStream xStream, final QuestData qd) throws IOException {
- final BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(f));
- final GZIPOutputStream zout = new GZIPOutputStream(bout);
- xStream.toXML(qd, zout);
- zout.flush();
- zout.close();
+ try(
+ final BufferedOutputStream bout = new BufferedOutputStream(Files.newOutputStream(Paths.get(f)));
+ final GZIPOutputStream zout = new GZIPOutputStream(bout)) {
+ xStream.toXML(qd, zout);
+ zout.flush();
+ }
}
@SuppressWarnings("unused") // used only for debug purposes
private static void saveUnpacked(final String f, final XStream xStream, final QuestData qd) throws IOException {
- final BufferedOutputStream boutUnp = new BufferedOutputStream(new FileOutputStream(f));
- xStream.toXML(qd, boutUnp);
- boutUnp.flush();
- boutUnp.close();
+ try(final BufferedOutputStream boutUnp = new BufferedOutputStream(Files.newOutputStream(Paths.get(f)))) {
+ xStream.toXML(qd, boutUnp);
+ boutUnp.flush();
+ }
}
private static class GameFormatQuestToXml implements Converter {
diff --git a/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentIO.java b/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentIO.java
index dd980cfc937..aed83a763b4 100644
--- a/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentIO.java
+++ b/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentIO.java
@@ -1,18 +1,5 @@
package forge.gamemodes.tournament;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Map;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.GZIPOutputStream;
-
-import org.apache.commons.lang3.StringUtils;
-
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.converters.Converter;
import com.thoughtworks.xstream.converters.MarshallingContext;
@@ -22,12 +9,18 @@ import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import com.thoughtworks.xstream.security.NoTypePermission;
import com.thoughtworks.xstream.security.NullPermission;
import com.thoughtworks.xstream.security.PrimitiveTypePermission;
-
import forge.deck.CardPool;
import forge.item.PaperCard;
import forge.localinstance.properties.ForgeConstants;
import forge.model.FModel;
import forge.util.IgnoringXStream;
+import org.apache.commons.lang3.StringUtils;
+
+import java.io.*;
+import java.nio.file.Files;
+import java.util.Map;
+import java.util.zip.GZIPInputStream;
+import java.util.zip.GZIPOutputStream;
public class TournamentIO {
/** Prompt in text field for new (unsaved) built gauntlets. */
@@ -130,11 +123,12 @@ public class TournamentIO {
}
private static void savePacked(final XStream xStream0, final TournamentData gd0) throws IOException {
- final BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(getTournamentFile(gd0)));
- final GZIPOutputStream zout = new GZIPOutputStream(bout);
- xStream0.toXML(gd0, zout);
- zout.flush();
- zout.close();
+ try(final BufferedOutputStream bout = new BufferedOutputStream(Files.newOutputStream(getTournamentFile(gd0).toPath()));
+ final GZIPOutputStream zout = new GZIPOutputStream(bout);
+ ) {
+ xStream0.toXML(gd0, zout);
+ zout.flush();
+ }
}
private static class DeckSectionToXml implements Converter {
diff --git a/forge-gui/src/main/java/forge/gui/download/GuiDownloadZipService.java b/forge-gui/src/main/java/forge/gui/download/GuiDownloadZipService.java
index 3185504477d..de6097de8d2 100644
--- a/forge-gui/src/main/java/forge/gui/download/GuiDownloadZipService.java
+++ b/forge-gui/src/main/java/forge/gui/download/GuiDownloadZipService.java
@@ -11,6 +11,7 @@ import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;
+import java.nio.file.Paths;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
@@ -107,32 +108,32 @@ public class GuiDownloadZipService extends GuiDownloadService {
progressBar.setMaximum(100);
- // input stream to read file - with 8k buffer
- final InputStream input = new BufferedInputStream(conn.getInputStream(), 8192);
-
FileUtil.ensureDirectoryExists(destFolder);
-
- // output stream to write file
final String destFile = destFolder + filename;
- final OutputStream output = new FileOutputStream(destFile);
- int count;
- long total = 0;
- final byte[] data = new byte[1024];
+ // input stream to read file - with 8k buffer
+ // output stream to write file
+ try(InputStream input = new BufferedInputStream(conn.getInputStream(), 8192);
+ OutputStream output = java.nio.file.Files.newOutputStream(Paths.get(destFile))) {
- while ((count = input.read(data)) != -1) {
- if (cancel) { break; }
+ int count;
+ long total = 0;
+ final byte[] data = new byte[1024];
- total += count;
- if (progressBar != null)
- progressBar.setValue((int)(100 * total / contentLength));
- output.write(data, 0, count);
+ while ((count = input.read(data)) != -1) {
+ if (cancel) {
+ break;
+ }
+
+ total += count;
+ if (progressBar != null)
+ progressBar.setValue((int) (100 * total / contentLength));
+ output.write(data, 0, count);
+ }
+
+ output.flush();
}
- output.flush();
- output.close();
- input.close();
-
if (cancel) {
new File(destFile).delete();
return null;
diff --git a/forge-gui/src/main/java/forge/util/ZipUtil.java b/forge-gui/src/main/java/forge/util/ZipUtil.java
index 9018d8ebd02..b6c465a7785 100644
--- a/forge-gui/src/main/java/forge/util/ZipUtil.java
+++ b/forge-gui/src/main/java/forge/util/ZipUtil.java
@@ -1,6 +1,9 @@
package forge.util;
-import java.io.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
@@ -11,11 +14,11 @@ import java.util.zip.ZipOutputStream;
public class ZipUtil {
public static String backupAdvFile = "forge.adv";
public static void zip(File source, File dest, String name) throws IOException {
+ try(
FileOutputStream fos = new FileOutputStream(dest.getAbsolutePath() + File.separator + name);
- ZipOutputStream zipOut = new ZipOutputStream(fos);
- zipFile(source, source.getName(), zipOut);
- zipOut.close();
- fos.close();
+ ZipOutputStream zipOut = new ZipOutputStream(fos)) {
+ zipFile(source, source.getName(), zipOut);
+ }
}
private static void zipFile(File fileToZip, String fileName, ZipOutputStream zipOut) throws IOException {
@@ -69,12 +72,12 @@ public class ZipUtil {
// write file content
val.append(" * "). append(newFile.getName()).append("\n");
- FileOutputStream fos = new FileOutputStream(newFile);
- int len;
- while ((len = zis.read(buffer)) > 0) {
- fos.write(buffer, 0, len);
+ try(FileOutputStream fos = new FileOutputStream(newFile)) {
+ int len;
+ while ((len = zis.read(buffer)) > 0) {
+ fos.write(buffer, 0, len);
+ }
}
- fos.close();
}
zipEntry = zis.getNextEntry();
}