以下代码应该使用DigestInputStream
Java 中的类计算文本文件中字符串的哈希值。
import java.io.*;
import java.security.*;
public class ReturnDigest extends Thread {
private File input;
private byte[] digest;
public ReturnDigest(File input) {
this.input = input;
}
public void run() {
try {
FileInputStream in = new FileInputStream(input);
MessageDigest sha = MessageDigest.getInstance("SHA");
DigestInputStream din = new DigestInputStream(in, sha);
int b;
while ((b = din.read()) != -1) ;
din.close();
digest = sha.digest();
}
catch (IOException ex) {
System.err.println(ex);
}
catch (NoSuchAlgorithmException ex) {
System.err.println(ex);
}
}
public byte[] getDigest() {
return digest;
}
}
我的问题是:为什么语句后有分号while
?这个对吗?当我删除它时,我得到错误。我从未听说过可以在 while 语句后放置分号。你能澄清一下这段代码中的情况吗?