91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

詳解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
东辽县| 田林县| 肃北| 分宜县| 曲周县| 华蓥市| 运城市| 加查县| 南丰县| 柯坪县| 富蕴县| 尉犁县| 崇左市| 定安县| 温泉县| 阳朔县| 汝城县| 朝阳市| 子洲县| 资中县| 安顺市| 德昌县| 和硕县| 永定县| 大厂| 嘉鱼县| 中卫市| 西宁市| 景洪市| 东海县| 千阳县| 翁源县| 扎兰屯市| 双流县| 寻乌县| 三明市| 阳江市| 苍南县| 丰台区| 砚山县| 民县|