我应该如何使用带有TWIST的.NET从文本文件中读取数据!

时间:2010-09-20 05:20:54

标签: .net parsing file

是的,这可能听起来像是一个新手问题,但有一个TWIST! (And i've done an SO search already ...)

我正在尝试一次读取多个文件...而每个文件可能会在其末尾附加新数据。

我总是知道我最后一个角色位置。

所以当我找到一个文件时,我想我想在执行代码行时从开始位置读到当前结束位置

然后解析所有数据..并转到下一个文件。当我解析那些数据时,可能会将新数据附加到文件的末尾..直到我回来并再次开始解析文件时,我才会这样做。

我有大约300-400个文件需要解析..这就是为什么我不特别想做大量的线程并且每个线程都有自己的数据库连接等等。无论如何......等等。

最后,每秒新数据并不多。所以我不会'永远'赶上'。

那么..任何想法如何最好地做到这一点?

我也在解析每个'line'..其中一行是一个以'\ n'结尾的文本等等。

思想?

更新/重新编辑..

  • 不要担心我有很多文件,并希望将数据存储到数据库中。我建议的原因是人们没有开始提出建议,每个文件使用多个线程,文件观察者等...
  • 每个日志文件具有相同的结构等,只是不同的数据/内容。不,我不想检测他们何时更新。我只想手动解析每一个,从最后一个流位置到当前结束位置。

1 个答案:

答案 0 :(得分:0)

拥有最后一个字符位置对你没有多大帮助。你想要的是最后的位置(即以字节为单位)。这样,您只需打开文件FileStream,找到正确的位置,然后创建一个StreamReader包裹流。

如果您在最初阅读时使用StreamReader,那么当您到达终点时,您应该能够通过检查基本流的位置来获得最终位置...通常您必须担心StreamReader已经缓存了额外的数据(因此从文件中读取了更多数据),但是如果你已经到达文件的末尾,那么无论如何都无法读取它:)