鉴于有一些文件的客户1.txt的,以客户为2.txt和客户3.txt和这些文件具有以下内容:阅读,比较和Java的
客户-1。 TXT
1|1|MARY|SMITH
2|1|PATRICIA|JOHNSON
4|2|BARBARA|JONES
客户-2.txt
1|1|MARY|SMITH
2|1|PATRICIA|JOHNSON
3|1|LINDA|WILLIAMS
4|2|BARBARA|JONES
客户-3.txt
2|1|PATRICIA|JOHNSON
3|1|LINDA|WILLIAMS
5|2|ALEXANDER|ANDERSON
这些文件有很多重复数据,但每个文件都可能包含一些独特的数据。
而且考虑到实际文件分类,大(几个GB的每个文件),并有许多文件...
那么什么是:
一)内存最低
b )CPU最低
C)在Java中最快
的方法来创建一个文件,这些三个文件将包含分选,然后连接起来像这样每个文件的所有独特的数据:
客户为final.txt
1|1|MARY|SMITH
2|1|PATRICIA|JOHNSON
3|1|LINDA|WILLIAMS
4|2|BARBARA|JONES
5|2|ALEXANDER|ANDERSON
我看着下面的解决方案https://github.com/upcrob/spring-batch-sort-merge,但我想知道,如果可能用的FileInputStream和/或非Spring Batch的解决方案,也许这样做。
由于文件的大小和实际数据库的缺失,使用内存或实际数据库加入它们的解决方案对于我的用例不可行。
第一个值是客户ID,是已经按照第一个值排序(数字)的文件,因为您的示例会指出它们是? – Andreas
是的,你是正确的,他们已经排序。感谢您的注意,请将其添加到问题描述中。 –
我不认为你可以在没有阅读文件内容的情况下实现这一点。您需要阅读每个文件,然后将其写入单独的文件。 – Priyamal