是的,这可能听起来像是一个新手问题,但有一个TWIST! (And i've done an SO search already ...)
我正在尝试一次读取多个文件...而每个文件可能会在其末尾附加新数据。
我总是知道我最后一个角色位置。
所以当我找到一个文件时,我想我想在执行代码行时从开始位置读到当前结束位置?
然后解析所有数据..并转到下一个文件。当我解析那些数据时,可能会将新数据附加到文件的末尾..直到我回来并再次开始解析文件时,我才会这样做。
我有大约300-400个文件需要解析..这就是为什么我不特别想做大量的线程并且每个线程都有自己的数据库连接等等。无论如何......等等。
最后,每秒新数据并不多。所以我不会'永远'赶上'。
那么..任何想法如何最好地做到这一点?
我也在解析每个'line'..其中一行是一个以'\ n'结尾的文本等等。
思想?
答案 0 :(得分:0)
拥有最后一个字符位置对你没有多大帮助。你想要的是最后的流位置(即以字节为单位)。这样,您只需打开文件FileStream
,找到正确的位置,然后创建一个StreamReader
包裹流。
如果您在最初阅读时使用StreamReader
,那么当您到达终点时,您应该能够通过检查基本流的位置来获得最终位置...通常您必须担心StreamReader
已经缓存了额外的数据(因此从文件中读取了更多数据),但是如果你已经到达文件的末尾,那么无论如何都无法读取它:)