中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

JAVA中獲取文件MD5值的方法有哪些

小億
200
2023-08-11 18:25:10
欄目: 編程語言

在Java中,獲取文件的MD5值的方法主要有以下幾種:

  1. 使用java.security.MessageDigest類:可以使用MessageDigest類提供的getInstance(“MD5”)方法獲取MD5算法的實例,然后通過update()方法更新數據,最后通過digest()方法獲取摘要值。
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class FileMD5 {
public static String getFileMD5(File file) throws NoSuchAlgorithmException, IOException {
MessageDigest md5Digest = MessageDigest.getInstance("MD5");
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[8192];
int length;
while ((length = fis.read(buffer)) != -1) {
md5Digest.update(buffer, 0, length);
}
fis.close();
byte[] digest = md5Digest.digest();
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}
}
  1. 使用Apache Commons Codec庫:Apache Commons Codec庫提供了DigestUtils類,其中包含了獲取MD5值的靜態方法md5Hex()。
import org.apache.commons.codec.digest.DigestUtils;
public class FileMD5 {
public static String getFileMD5(File file) throws IOException {
return DigestUtils.md5Hex(new FileInputStream(file));
}
}
  1. 使用Java 7的NIO包:Java 7的NIO包中提供了獲取文件MD5值的方式,使用java.nio.file包中的Files類的靜態方法readAllBytes()讀取文件內容,然后使用java.security.MessageDigest類進行摘要計算。
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class FileMD5 {
public static String getFileMD5(File file) throws NoSuchAlgorithmException, IOException {
MessageDigest md5Digest = MessageDigest.getInstance("MD5");
Path filePath = Paths.get(file.getAbsolutePath());
byte[] fileBytes = Files.readAllBytes(filePath);
byte[] digest = md5Digest.digest(fileBytes);
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}
}

這些方法都可以獲取文件的MD5值,可以根據具體的需求選擇適合的方法。

0
杭锦旗| 张家港市| 杭锦后旗| 新乡县| 巢湖市| 靖边县| 仁布县| 乐安县| 囊谦县| 鄂尔多斯市| 手机| 集贤县| 罗山县| 曲水县| 呼伦贝尔市| 保康县| 旬阳县| 策勒县| 清徐县| 手游| 长阳| 略阳县| 宜兰市| 红桥区| 绵阳市| 迭部县| 岗巴县| 光泽县| 山阴县| 宕昌县| 平邑县| 门源| 邓州市| 拜泉县| 垫江县| 瑞安市| 平江县| 扶余县| 连城县| 台湾省| 新密市|