使用Scala计算文件内容哈希

时间:2016-05-18 18:04:26

标签: scala file hash playframework

在我们的应用程序中,我们需要计算文件哈希值,因此我们可以比较文件是否稍后更新。 我现在这样做的方法是使用这个小方法:

ls 2>&1

这一切都很完美,直到代码被部署到不同的环境中,文件文件位于不同的绝对路径中。我想,哈希也考虑了这条路径。 计算文件内容的某种可靠散列的最佳方法是什么,与文件内容保持不变,能够很好地产生与日志相同的结果?

谢谢,

1 个答案:

答案 0 :(得分:0)

仔细阅读源代码https://github.com/google/guava/blob/master/guava/src/com/google/common/io/Files.java - 后,文件内容将被哈希处理 - 路径不会发挥作用。

 public static HashCode hash(File file, HashFunction hashFunction) throws IOException {
    return asByteSource(file).hash(hashFunction);
  }

因此您无需担心文件的位置。现在为什么你最终会在不同的fs上使用不同的哈希..也许你应该比较大小/内容以确保例如没有引入复合eol。