我必须有 2 个 utf-8 文本文件。在文件的每一行中都有一个字符串,可以包含语言特定的字符,如 Ü、Ö、ą、ę。字符串是随机的顺序和长度,并且可以重复。在第一个文件中至少有 300 万行(很容易超过 1 mld 行)。第二个文件较小,它通常有大约 40 万行(但可以更大)。
我需要创建一个新文件,其中包含文件一中的条目,其中删除了出现在文件二中的条目以及所有重复条目。
目前我正在对两个文件进行排序并删除重复条目。接下来我将它们写入新文件,同时检查它们是否出现在第二个文件中。
有没有更快的方法来做到这一点?
编辑
内存是个问题。我不会将此字符串复制到内存中,而是对文件进行操作。我的朋友建议不要复制到内存,而是处理文件流。在此之后执行时间显着下降。
计算机管理员不想在其上安装数据库。
在循环中对我的代码符文进行排序后:
if stringFromFile1 < stringFromFile2 then writeToFile3 and get next stringFromFile1
else if stringFromFile1 == stringFromFile2 then dropStringFromFile1 and get next stringFromFile1
else if stringFromFile1 > stringFromFile2 then get next stringFromFile2 and go to line 1