【发布时间】:2021-03-04 08:26:45
【问题描述】:
我有一个 30GB 的日志文件要读取和处理, 在第一部分中,我需要找到一系列日期(我从最终用户那里获得),然后将它们全部打印出来。
所以对于第一部分,是否可以只读取每行的日期(前 20 个字符)而不是移动到下一行的开头,而不是读取整行?
C# 编码
【问题讨论】:
-
无论哪种方式,您都必须经过整条生产线才能到达下一条生产线。这就是文本文件的读取方式。
-
是的,所以文本文件只是文件中的一堆字符字节。它不包含所有行尾所在的字典。您需要阅读每一行以获取结尾以获取开始以获取范围....
-
如何将文件指针初始化到文件的中间,然后使用带有该指针的二进制搜索来找到想要的日期?我还要继续前进吗?
-
当然,发疯...
-
我在猜测 op 的意思,像二进制搜索算法一样将文件一分为二,并从该偏移量中找到下一行的结尾。我喜欢这个主意。虽然这需要一些混乱。 Orrrrr,您可以使用更好的日志记录框架,自然地将结构化日志存储在数据库中并对其进行索引......有很多