import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.security.DigestInputStream;
import java.security.MessageDigest;
/**
* TODO 在此写上类的相关说明.<br>
* @author gqltt<br>
* @version 1.0.0 2021年11月29日<br>
* @see
* @since JDK 1.5.0
*/
public class DigestInputStreamDemo {
public static void main(String[] args) throws Exception {
// 待做消息摘要操作的原始信息.
final InputStream in = new FileInputStream(new File("D:/temp/附件01.pdf"));
// 初始化MessageDigest对象,将使用MD5算法.
MessageDigest md = MessageDigest.getInstance("MD5");
// 构建DigestInputStream.
DigestInputStream dis = new DigestInputStream(in, md);
byte[] buf = new byte[in.available()];
// 流输入.
dis.read(buf, 0, in.available());
// 获得摘要信息.
byte[] output = dis.getMessageDigest().digest();
System.out.println("摘要信息:" + HexUtil.byteArrToHex(output));
// 关闭流.
dis.close();
}
}