From 94a71dc88fe21fb402668b8c775361041c7d52d0 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Wed, 5 Sep 2018 22:17:58 +0800 Subject: [PATCH] Fix unclosing file --- .../org/jackhuang/hmcl/mod/MinecraftInstanceTask.java | 2 +- .../main/java/org/jackhuang/hmcl/util/DigestUtils.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MinecraftInstanceTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MinecraftInstanceTask.java index 3c7a4c923..83523bebc 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MinecraftInstanceTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MinecraftInstanceTask.java @@ -63,7 +63,7 @@ public final class MinecraftInstanceTask extends Task { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { String relativePath = root.relativize(file).normalize().toString(); - overrides.add(new ModpackConfiguration.FileInformation(relativePath, encodeHex(digest("SHA-1", Files.newInputStream(file))))); + overrides.add(new ModpackConfiguration.FileInformation(relativePath, encodeHex(digest("SHA-1", file)))); return FileVisitResult.CONTINUE; } }); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/DigestUtils.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/DigestUtils.java index 07b1320e4..6f1656840 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/DigestUtils.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/DigestUtils.java @@ -19,6 +19,8 @@ package org.jackhuang.hmcl.util; import java.io.IOException; import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -51,6 +53,12 @@ public final class DigestUtils { return getDigest(algorithm).digest(data); } + public static byte[] digest(String algorithm, Path path) throws IOException { + try (InputStream is = Files.newInputStream(path)) { + return digest(algorithm, is); + } + } + public static byte[] digest(String algorithm, InputStream data) throws IOException { return digest(getDigest(algorithm), data); }