如何找到大文本文件的差异?

时间:2017-08-19 21:02:12

标签: java string multithreading file string-comparison

我们有两种类型的文件

  1. 单个大型文件,其中包含一些预订代码的记录 - 此文件大小约为20 MB

    AMMA-08 / 17/2017 12:02:06-EZZE20170819010101

    AMMA-08 / 17/2017 12:02:06-EZZE20170819020202

  2. 多个文件的集合,其中包含如下记录 - 此文件将有大约20K-30K记录

    000003 | EZZE20170819010101 | 16082017 |你好迈克尔

    000003 | EZZE20170819070707 | 16082017 | Hello Jackson

  3. 我必须在单独的文件中列出不匹配的记录(EZZE20170819020202和EZZE20170819070707)。

    文件大小很大,我需要拆分每条记录以获得与其他文件中的CODE匹配的CODE,我担心性能和CPU利用率。

    是否存在提供类似功能的策略或任何现有库(使用Java或任何其他技术)?

1 个答案:

答案 0 :(得分:0)

如果你使用一个体积适中的缓冲区(我至少使用1-20 MB来确保HD主要进行连续读写),那么不应该有任何内存问题。

如果您同时拥有两个以上的文件,则必须使用线程来减少时间。

如果速度有问题,你也可以查看java.nio包 - 它会比java.io库更快。 您可以查看网站https://dzone.com/articles/java-sequential-io-performance