亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

詳解JAVA中獲取文件MD5值的四種方法

小云
273
2023-08-11 12:39:45
欄目: 編程語言

在Java中,可以使用以下四種方法來獲取文件的MD5值:

  1. 使用java.security.MessageDigest類:可以使用該類的getInstance方法來獲取MD5算法的實例,并使用update方法來更新消息摘要。最后,可以使用digest方法來獲取文件的MD5值。
import java.io.FileInputStream;
import java.security.MessageDigest;
public class FileMD5 {
public static void main(String[] args) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
FileInputStream fis = new FileInputStream("path/to/file");
byte[] dataBytes = new byte[1024];
int nread = 0;
while ((nread = fis.read(dataBytes)) != -1) {
md.update(dataBytes, 0, nread);
}
byte[] mdbytes = md.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < mdbytes.length; i++) {
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
System.out.println("MD5: " + sb.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
  1. 使用Apache Commons Codec庫:該庫提供了一個DigestUtils類,可以使用它的md5Hex方法來獲取文件的MD5值。
import org.apache.commons.codec.digest.DigestUtils;
import java.io.FileInputStream;
import java.io.IOException;
public class FileMD5 {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("path/to/file");
String md5 = DigestUtils.md5Hex(fis);
System.out.println("MD5: " + md5);
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
  1. 使用Java 7的java.nio.file包:可以使用Files類的get方法來獲取文件的MD5值。
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.MessageDigest;
public class FileMD5 {
public static void main(String[] args) {
try {
Path path = Paths.get("path/to/file");
byte[] dataBytes = Files.readAllBytes(path);
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] mdbytes = md.digest(dataBytes);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < mdbytes.length; i++) {
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
System.out.println("MD5: " + sb.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
  1. 使用第三方庫:可以使用第三方庫如Guava或Apache Commons IO來獲取文件的MD5值。

使用Guava:

import com.google.common.hash.HashCode;
import com.google.common.hash.Hashing;
import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;
public class FileMD5 {
public static void main(String[] args) {
try {
File file = new File("path/to/file");
HashCode md5 = Files.hash(file, Hashing.md5());
System.out.println("MD5: " + md5.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}

使用Apache Commons IO:

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class FileMD5 {
public static void main(String[] args) {
try {
File file = new File("path/to/file");
String md5 = DigestUtils.md5Hex(FileUtils.readFileToByteArray(file));
System.out.println("MD5: " + md5);
} catch (IOException e) {
e.printStackTrace();
}
}
}

以上是在Java中獲取文件的MD5值的四種方法。可以根據實際情況選擇合適的方法來使用。

0
犍为县| 尖扎县| 惠安县| 宣武区| 交口县| 股票| 布拖县| 应城市| 襄汾县| 尼勒克县| 隆德县| 策勒县| 门源| 区。| 鞍山市| 赤壁市| 灵山县| 常州市| 桦甸市| 萝北县| 宝丰县| 普宁市| 余干县| 崇文区| 手机| 广州市| 威远县| 淮滨县| 四会市| 宁津县| 无为县| 高平市| 贵南县| 惠州市| 葫芦岛市| 太白县| 诸城市| 方正县| 太保市| 孝昌县| 宜宾县|