c# - 如何只读取大文件中一行的一部分?
问题描述
我有一个 30GB 的日志文件要读取和处理,在第一部分中,我需要找到一个日期范围(我从最终用户那里获得),然后将它们全部打印出来。
因此,对于第一部分,是否可以只读取每行的日期(前 20 个字符)而不是移动到下一行的开头,而不是读取整行?
C# 编码
解决方案
文本文件并不特殊,它们没有索引之类的东西来加快速度。您将需要阅读所有 30GB。如今,TBH 30GB 并不多。我曾在每天生成这么多日志的系统上工作过。有 $$$ 工具可以提供帮助,如果您经常需要查看这么多文本,它们会预先索引数据,但如果这是一次性的,那么类似:
while(!stream.EndOfStream)
{
var line = stream.ReadLine();
var dateTime = DateTime.Parse(line.SubString(20));
if(dateTime >= start && <=end)
{ do something }
}
推荐阅读
- javascript - 无法使用草图 p5.js 居中并填充视口
- java - 如何从 TestRail 运行 Java 自动测试
- vba - 如何将文本框或标签链接到组合框值?我找到了一种链接到数字值而不是文本值的方法
- python-3.x - 如何更改 seaborn.catplot 中的标记大小
- javascript - 如何在单击时获取表格单元格的位置
- javascript - 如何在 Bootstrap-Vue 中检索输入类型文件(具有多个文件)中的文件路径
- python - 如何从熊猫数据框中删除并返回一行?
- android - Android:如何摆脱App中的标题栏?
- python - python redis和命令PUBSUB频道
- c# - 如何获取 TableCell 的值?