【发布时间】:2016-10-14 08:40:03
【问题描述】:
我们有一个 150 Gb 的数据文件夹。其中,文件内容是任何格式(doc、jpg、png、txt 等)。我们需要相互检查所有文件内容以检查是否有重复的文件内容。如果是,则打印文件路径名列表。为此,我首先使用ArrayList<File> 存储所有文件,然后使用FileUtils.contentEquals(file1, file2) 方法。当我尝试处理少量文件(文件夹)时,它正在工作,但对于这个 150Gb 数据文件夹,它没有显示任何结果。我认为首先将所有文件存储在 ArrayList 中会产生问题。 JVM Heap 问题,我不确定。
谁有更好的建议和示例代码来处理这么多的数据?请帮我。
【问题讨论】:
-
您是否尝试过计算文件的校验和而不是读取它们?
-
我直接使用 FileUtils.contentEquals 方法来检查文件以查找并存储结果。
-
@Prashant 你能给我写一个示例代码吗?
-
@samgak 已经指明了方向!请查看他的答案
标签: java algorithm collections checksum fileutils