我有一个日志文件,每行有单个字符串。我试图从文件中删除重复的数据并将文件保存为新文件。我首先想到了将数据读入HashSet,然后将哈希集的内容保存出来,但是当尝试执行此操作时(在将该字符串添加到哈希集的行上),我得到一个“OutOfMemory”异常。从大文件中删除冗余数据
文件中有大约32,000,000行。每次比较重新读取整个文件是不现实的。
任何想法?我的另一个想法是将整个内容输出到一个SQLite数据库并选择DISTINCT值,但我不确定它能与那么多值一起工作。
感谢您的任何意见!
您可以用'File.ReadAllLines'没有一个OutOfMemoryException?我假设你在32位系统上运行它。 –
我在64位系统上运行它,并且我还没有尝试过ReadAllLines。我确实想知道有多少项目被淘汰,所以我正在使用一个StreamReader读取每一行并将其添加到哈希集。我正在测试.Add()方法的结果以查看它是否返回false来计算冗余项目的数量。如果可能,我想保留此功能。 – rune711