我正在处理一个非常大的文件。我说的是技嘉大人物。
我需要能够读取特定索引中的一行,因为文本文件一直在更新。实现这一目标的最快解决方案是什么?我根本不受空间要求的限制。
编辑:发布更详细的信息。假设我有以下需要阅读的文字:
Jun 21 09:47:53 ez-x5 user.debug if_comm: [TX] 30 40 05
Jun 21 09:47:53 ez-x5 user.debug if_comm: [RX] 04
Jun 21 09:47:53 ez-x5 user.debug if_comm: [TX] 30 40 05
Jun 21 09:47:54 ez-x5 user.debug if_comm: [RX] 02 30 40 0f 30 32 31 23 64 31 30 32 30 64 64 49 49 49 49 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 03 0b
我们的记录器会不断更新此文本文件。当文本文件更新时,我需要读取添加到日志中的任何内容的新行(用\ n分隔)。
答案 0 :(得分:1)
答案 1 :(得分:0)
使用lineCounter
变量并在阅读StreamReader.ReadLine()
时将其递增。当您达到特定索引(即lineCounter==SpecificIndex
)时,请停止阅读。
答案 2 :(得分:0)
通过使用MemoryMappedFile
,您可以将文件的一部分映射到内存中(因此您不会读取完整文件)。通过将其与FileSystemWatcher
相结合,您应该能够获得一个非常好的解决方案。