用于识别相同文件的Java文件哈希
答
public byte[] digestFile(File f){
try {
MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
FileInputStream fis = new FileInputStream(f);
byte[] buffer = new byte[1024];
int read = -1;
while ((read = fis.read(buffer)) != -1) {
messageDigest.digest(buffer, 0, read);
}
return messageDigest.digest();
} catch (VariousExceptions e) {
//handle
}
}
答
看一看的DigestInputStream
类:http://docs.oracle.com/javase/7/docs/api/java/security/DigestInputStream.html
答
取决于你需要什么,你可以做到这一点很容易地使用Guava的Files和ByteStreams类:
byte[] digest = Files.getDigest(file, MessageDigest.getInstance("SHA"));
可以使一个散列函数取决于你喜欢的任何东西,包括'外部属性'或不。写这样一个你不明白的函数是什么? – DJClayworth 2011-04-29 15:47:47