Gro*_*roo 6 c# csv real-time stream large-files
我需要实时解析一个大型CSV文件,同时由不同的进程修改(附加).从大到大,我的意思是此时约为20 GB,并且正在缓慢增长.应用程序只需要检测并报告数据流中的某些异常,只需要存储小的状态信息(O(1)
空间).
我在考虑每隔几秒轮询文件的属性(大小),打开一个只读流,寻找前一个位置,然后继续解析我第一次停止的位置.但由于这是一个文本(CSV)文件,我显然需要在以某种方式继续跟踪换行符,以确保我总是解析整行.
如果我没有弄错的话,这应该不是一个实现的问题,但我想知道是否有一个共同的方法/库已经解决了一些这些问题?
注意:我不需要CSV解析器.我需要一个关于库的信息,它简化了从动态修改的文件中读取行.
这里有一个小问题:
第一个想法:保持打开状态。如果生产者和分析器都工作在非独占模式下,应该可以进行ReadLine-until-null、pause、ReadLine-until-null等操作。
它应该是 7 位 ASCII,只是一些 Guid 和数字
这使得跟踪文件位置 (pos += line.Length+2) 成为可能。请确保使用打开它Encoding.ASCII
。然后,您可以将其作为普通二进制流重新打开,查找到最后一个位置,然后将 StreamReader 附加到该流。
归档时间: |
|
查看次数: |
594 次 |
最近记录: |