From 09c76a4dc8522a8e4339940d97fae49d426036f0 Mon Sep 17 00:00:00 2001 From: Jetz Date: Sat, 10 Aug 2024 11:09:31 -0400 Subject: [PATCH] Cleanup - File IO streams --- .../src/main/java/forge/CardStorageReader.java | 15 ++------------- .../src/main/java/forge/util/CardTranslation.java | 8 ++++---- forge-core/src/main/java/forge/util/FileUtil.java | 3 ++- forge-gui-mobile/src/forge/assets/FSkinFont.java | 5 +++-- .../java/forge/gamemodes/gauntlet/GauntletIO.java | 2 +- .../forge/gamemodes/quest/io/QuestDataIO.java | 2 +- .../forge/gamemodes/tournament/TournamentIO.java | 2 +- .../forge/gui/download/GuiDownloadZipService.java | 2 +- .../properties/ForgeProfileProperties.java | 4 ++-- forge-gui/src/main/java/forge/util/ZipUtil.java | 3 ++- .../lda/lda/inference/InferenceProperties.java | 8 ++++---- 11 files changed, 23 insertions(+), 31 deletions(-) diff --git a/forge-core/src/main/java/forge/CardStorageReader.java b/forge-core/src/main/java/forge/CardStorageReader.java index d49fadaa8d5..ef80ce432a0 100644 --- a/forge-core/src/main/java/forge/CardStorageReader.java +++ b/forge-core/src/main/java/forge/CardStorageReader.java @@ -382,25 +382,14 @@ public class CardStorageReader { * @return a new Card instance */ protected final CardRules loadCard(final CardRules.Reader reader, final File file) { - FileInputStream fileInputStream = null; - try { - fileInputStream = new FileInputStream(file); + try (InputStream fileInputStream = java.nio.file.Files.newInputStream(file.toPath())) { reader.reset(); final List lines = readScript(fileInputStream); return reader.readCard(lines, Files.getNameWithoutExtension(file.getName())); } catch (final FileNotFoundException ex) { throw new RuntimeException("CardReader : run error -- file not found: " + file.getPath(), ex); } catch (final Exception ex) { - System.out.println("Error loading cardscript " + file.getName() + ". Please close Forge and resolve this."); - throw ex; - } finally { - try { - assert fileInputStream != null; - fileInputStream.close(); - } catch (final IOException ignored) { - // 11:08 - // PM - } + throw new RuntimeException("Error loading cardscript " + file.getName() + ". Please close Forge and resolve this.", ex); } } diff --git a/forge-core/src/main/java/forge/util/CardTranslation.java b/forge-core/src/main/java/forge/util/CardTranslation.java index 7b1633887da..446dc4fb41b 100644 --- a/forge-core/src/main/java/forge/util/CardTranslation.java +++ b/forge-core/src/main/java/forge/util/CardTranslation.java @@ -1,14 +1,14 @@ package forge.util; -import java.io.FileInputStream; import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; -import com.google.common.base.Charsets; - public class CardTranslation { private static Map translatednames; @@ -24,7 +24,7 @@ public class CardTranslation { private static void readTranslationFile(String language, String languagesDirectory) { String filename = "cardnames-" + language + ".txt"; - try (LineReader translationFile = new LineReader(new FileInputStream(languagesDirectory + filename), Charsets.UTF_8)) { + try (LineReader translationFile = new LineReader(Files.newInputStream(Paths.get(languagesDirectory + filename)), StandardCharsets.UTF_8)) { for (String line : translationFile.readLines()) { String[] matches = line.split("\\|"); if (matches.length >= 2) { diff --git a/forge-core/src/main/java/forge/util/FileUtil.java b/forge-core/src/main/java/forge/util/FileUtil.java index ce049c19c85..6463874a0e8 100644 --- a/forge-core/src/main/java/forge/util/FileUtil.java +++ b/forge-core/src/main/java/forge/util/FileUtil.java @@ -22,6 +22,7 @@ import org.apache.commons.lang3.tuple.Pair; import java.io.*; import java.net.URL; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.util.ArrayList; import java.util.Collection; @@ -252,7 +253,7 @@ public final class FileUtil { final List list = new ArrayList<>(); try { final BufferedReader in = new BufferedReader( - new InputStreamReader(new FileInputStream(file), "UTF-8")); + new InputStreamReader(Files.newInputStream(file.toPath()), StandardCharsets.UTF_8)); String line; while ((line = in.readLine()) != null) { if (mayTrim) { diff --git a/forge-gui-mobile/src/forge/assets/FSkinFont.java b/forge-gui-mobile/src/forge/assets/FSkinFont.java index cb8a0153675..552aebb5d8b 100644 --- a/forge-gui-mobile/src/forge/assets/FSkinFont.java +++ b/forge-gui-mobile/src/forge/assets/FSkinFont.java @@ -1,8 +1,9 @@ package forge.assets; -import java.io.FileInputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.HashMap; import com.badlogic.gdx.Gdx; @@ -370,7 +371,7 @@ public class FSkinFont { String[] translationFilePaths = { ForgeConstants.LANG_DIR + "cardnames-" + langCode + ".txt", ForgeConstants.LANG_DIR + langCode + ".properties" }; for (String translationFilePath : translationFilePaths) { - try (LineReader translationFile = new LineReader(new FileInputStream(translationFilePath), + try (LineReader translationFile = new LineReader(Files.newInputStream(Paths.get(translationFilePath)), StandardCharsets.UTF_8)) { for (String fileLine : translationFile.readLines()) { final int stringLength = fileLine.length(); diff --git a/forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletIO.java b/forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletIO.java index 0700ff486c3..10b075c9cdb 100644 --- a/forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletIO.java +++ b/forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletIO.java @@ -98,7 +98,7 @@ public class GauntletIO { public static GauntletData loadGauntlet(final File xmlSaveFile) { boolean isCorrupt = false; - try (GZIPInputStream zin = new GZIPInputStream(new FileInputStream(xmlSaveFile)); + try (GZIPInputStream zin = new GZIPInputStream(Files.newInputStream(xmlSaveFile.toPath())); InputStreamReader reader = new InputStreamReader(zin)) { final GauntletData data = (GauntletData)GauntletIO.getSerializer(true).fromXML(reader); diff --git a/forge-gui/src/main/java/forge/gamemodes/quest/io/QuestDataIO.java b/forge-gui/src/main/java/forge/gamemodes/quest/io/QuestDataIO.java index 0bba1336eb8..0ca54c840fa 100644 --- a/forge-gui/src/main/java/forge/gamemodes/quest/io/QuestDataIO.java +++ b/forge-gui/src/main/java/forge/gamemodes/quest/io/QuestDataIO.java @@ -129,7 +129,7 @@ public class QuestDataIO { QuestData data; final StringBuilder xml = new StringBuilder(); - try (GZIPInputStream zin = new GZIPInputStream(new FileInputStream(xmlSaveFile)); + try (GZIPInputStream zin = new GZIPInputStream(Files.newInputStream(xmlSaveFile.toPath())); InputStreamReader reader = new InputStreamReader(zin)) { final char[] buf = new char[1024]; while (reader.ready()) { 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 36aa7d71cd6..23639477878 100644 --- a/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentIO.java +++ b/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentIO.java @@ -79,7 +79,7 @@ public class TournamentIO { public static TournamentData loadTournament(final File xmlSaveFile) { boolean isCorrupt = false; - try (GZIPInputStream zin = new GZIPInputStream(new FileInputStream(xmlSaveFile)); + try (GZIPInputStream zin = new GZIPInputStream(Files.newInputStream(xmlSaveFile.toPath())); InputStreamReader reader = new InputStreamReader(zin)) { final TournamentData data = (TournamentData)TournamentIO.getSerializer(true).fromXML(reader); 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 67c89c9f28c..81f2ea12e89 100644 --- a/forge-gui/src/main/java/forge/gui/download/GuiDownloadZipService.java +++ b/forge-gui/src/main/java/forge/gui/download/GuiDownloadZipService.java @@ -232,7 +232,7 @@ public class GuiDownloadZipService extends GuiDownloadService { final byte[] buffer = new byte[1024]; int len; - try (BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outPath))) { + try (BufferedOutputStream out = new BufferedOutputStream(java.nio.file.Files.newOutputStream(Paths.get(outPath)))) { while ((len = in.read(buffer)) >= 0) { out.write(buffer, 0, len); } diff --git a/forge-gui/src/main/java/forge/localinstance/properties/ForgeProfileProperties.java b/forge-gui/src/main/java/forge/localinstance/properties/ForgeProfileProperties.java index c2f281ba90d..b28f088201a 100644 --- a/forge-gui/src/main/java/forge/localinstance/properties/ForgeProfileProperties.java +++ b/forge-gui/src/main/java/forge/localinstance/properties/ForgeProfileProperties.java @@ -18,8 +18,8 @@ package forge.localinstance.properties; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; +import java.nio.file.Files; import java.util.Map; import java.util.Properties; @@ -62,7 +62,7 @@ public class ForgeProfileProperties { final File propFile = new File(ForgeConstants.PROFILE_FILE); try { if (propFile.canRead() && !isUsingAppDirectory) { - props.load(new FileInputStream(propFile)); + props.load(Files.newInputStream(propFile.toPath())); } } catch (final IOException e) { System.err.println("error while reading from profile properties file"); diff --git a/forge-gui/src/main/java/forge/util/ZipUtil.java b/forge-gui/src/main/java/forge/util/ZipUtil.java index b6c465a7785..e1718c72632 100644 --- a/forge-gui/src/main/java/forge/util/ZipUtil.java +++ b/forge-gui/src/main/java/forge/util/ZipUtil.java @@ -4,6 +4,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.nio.file.Files; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; @@ -55,7 +56,7 @@ public class ZipUtil { public static String unzip(File fileZip, File destDir) throws IOException { StringBuilder val = new StringBuilder(); byte[] buffer = new byte[1024]; - ZipInputStream zis = new ZipInputStream(new FileInputStream(fileZip)); + ZipInputStream zis = new ZipInputStream(Files.newInputStream(fileZip.toPath())); ZipEntry zipEntry = zis.getNextEntry(); while (zipEntry != null) { File newFile = newFile(destDir, zipEntry); diff --git a/forge-lda/src/forge/lda/lda/inference/InferenceProperties.java b/forge-lda/src/forge/lda/lda/inference/InferenceProperties.java index c550cc3277d..6ef8febf415 100644 --- a/forge-lda/src/forge/lda/lda/inference/InferenceProperties.java +++ b/forge-lda/src/forge/lda/lda/inference/InferenceProperties.java @@ -16,10 +16,10 @@ package forge.lda.lda.inference; -import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.Properties; public class InferenceProperties { @@ -63,8 +63,8 @@ public class InferenceProperties { } class PropertiesLoader { - public InputStream getInputStream(String fileName) throws FileNotFoundException { + public InputStream getInputStream(String fileName) throws IOException { if (fileName == null) throw new NullPointerException(); - return new FileInputStream(fileName); + return Files.newInputStream(Paths.get(fileName)); } }