使用java中的hashkey比较两个文件内容

时间:2015-10-17 18:48:10

标签: java file hashcode java-io

我正在为TCP客户端服务器编写一个代码,客户端会向服务器询问它在某个指定文件夹中的所有文件信息,然后客户端会将该数据与其本地目录信息进行比较,并相应地执行下载或删除操作。换句话说,客户端将其本地目录与服务器目录同步。 为了比较文件,我使用下面的代码生成服务器上所有文件的hashkey,但问题是它对于不同的文件名正常工作。但是,如果我更新文件的内容,则此代码返回相同的hashValue。

InputStream fis = null;
fis = new FileInputStream(fileName);

byte[] buffer = new byte[1024];
MessageDigest md =  md = MessageDigest.getInstance("MD5");

int numRead = 0;
do {
    numRead = fis.read(buffer);
    if (numRead > 0) {
        total_size+=numRead;
        md.update(buffer, 0, numRead);
    }
} while (numRead != -1);

fis.close();
byte[] hashValue = md.digest();

那么,如果有任何解决方案,它会为同一文件的不同内容生成不同的密钥,还是有其他方法来比较两端的文件?

0 个答案:

没有答案