diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/LibraryDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/LibraryDownloadTask.java index cebb4823d..9c4c4d868 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/LibraryDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/LibraryDownloadTask.java @@ -142,7 +142,7 @@ public final class LibraryDownloadTask extends Task { JarInputStream jar = new JarInputStream(new ByteArrayInputStream(data)); JarEntry entry = jar.getNextJarEntry(); while (entry != null) { - byte[] eData = IOUtils.readFullyAsByteArray(jar); + byte[] eData = IOUtils.readFullyWithoutClosing(jar); if (entry.getName().equals("checksums.sha1")) { hashes = new String(eData, Charset.forName("UTF-8")).split("\n"); } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java index ccc89e25a..999b8c53f 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java @@ -31,6 +31,12 @@ public final class IOUtils { public static final int DEFAULT_BUFFER_SIZE = 8 * 1024; + public static byte[] readFullyWithoutClosing(InputStream stream) throws IOException { + ByteArrayOutputStream result = new ByteArrayOutputStream(); + copyTo(stream, result); + return result.toByteArray(); + } + public static ByteArrayOutputStream readFully(InputStream stream) throws IOException { try (InputStream is = stream) { ByteArrayOutputStream result = new ByteArrayOutputStream();