小编mon*_*nja的帖子

反向流读取器

我有一个应用程序,我已经负责清理后.应用程序本身相对简单 - 它运行SQL查询,使用Web服务,并将结果吐出到日志文件中.我的工作是在应用程序完成后将文件存档到我们的NAS.它将文件独占锁定,直到完成它们,因此它增加了一点点复杂性.我也不被允许触摸应用程序,只有日志.无论如何,我的申请很简单:

  1. 检查文件是否可以打开(捕获IOException)并在bool []中将其标记为可访问,如果没有抛出异常.
  2. 浏览标记为true的文件数组,使用ReadLine方法将文件的每一行读入StreamReader.因为应用程序偶尔打嗝并且没有完成,我不能简单地使用IOException来判断文件是否已完成 - 我必须实际解析文本.
  3. 如果找到指示完成的文本,请压缩文件,将存档文件加载到NAS,然后删除原始文件.

我的代码工作,它只是非常耗时(日志文件大约500 MB).我对改进的想法涉及从文件底部而不是从顶部开始我的搜索,但StreamReader不支持这样的方法.我不能使用ReadToEnd方法,然后反向读取,因为这只会引发内存不足异常.有什么想法,我可以加快解析日志文件?

c# parsing streamreader

5
推荐指数
1
解决办法
2943
查看次数

标签 统计

c# ×1

parsing ×1

streamreader ×1