我正在为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();
那么,如果有任何解决方案,它会为同一文件的不同内容生成不同的密钥,还是有其他方法来比较两端的文件?