mon*_*nja 5 c# parsing streamreader
我有一个应用程序,我已经负责清理后.应用程序本身相对简单 - 它运行SQL查询,使用Web服务,并将结果吐出到日志文件中.我的工作是在应用程序完成后将文件存档到我们的NAS.它将文件独占锁定,直到完成它们,因此它增加了一点点复杂性.我也不被允许触摸应用程序,只有日志.无论如何,我的申请很简单:
我的代码工作,它只是非常耗时(日志文件大约500 MB).我对改进的想法涉及从文件底部而不是从顶部开始我的搜索,但StreamReader不支持这样的方法.我不能使用ReadToEnd方法,然后反向读取,因为这只会引发内存不足异常.有什么想法,我可以加快解析日志文件?
我假设您在文件末尾查找单个标记以确定它是否已完成?如果是这样,我还假设标记具有已知长度,例如单个字节或3个字节的序列等.
如果上述假设是正确的,您可以打开FileStream,查找文件的末尾减去预期的标记长度读取字节,如果标记存在并完成,您就知道可以处理该文件.
寻求到最后-3个字节可以使用如下代码完成
// Seek -3 bytes starting from the end of the file
fileStream.Seek(-3, SeekOrigin.End);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2943 次 |
| 最近记录: |