C#中的部分文件读取

时间:2013-11-10 10:59:10

标签: c# .net filestream file-pointer

我正在开发一个需要读取不断更新的文本文件的应用程序。我需要读取文件直到文件结束(在那一刻)并且需要记住这个位置以便我下一个文件读取。我打算用C#.net开发这个应用程序。如何在C#不提供文件处理指针的情况下执行这些部分读取并记住位置?

编辑:文件每30秒更新一次,新数据将附加到旧文件中。 我尝试保持先前读取的长度,然后从该位置读取数据,但两个应用程序无法同时访问该文件。

3 个答案:

答案 0 :(得分:3)

您可以保持文件中读指针的最后一个偏移量。你可以这样做

long lastOffset = 0;    

using (var fs = new FileStream("myFile.bin", FileMode.Open))       
{
      fs.Seek(lastOffset, SeekOrigin.Begin);

      // Read the file here 

      // Once file is read, update the lastOffset
      lastOffset=fs.Seek(0, SeekOrigin.End);
 }

答案 1 :(得分:1)

打开文件,读取所有内容,保存您在变量中读取的字节数(让我们假设它是read_until_here)。

下次阅读该文件时,只需获取新信息(以read_until_here变量所在位置为准...

答案 2 :(得分:1)

  

我打算用C#.net开发这个应用程序。如何在C#不提供文件处理指针的情况下执行这些部分读取并记住位置?

不完全确定为什么你会担心所谓缺乏指针...我会自己调查int FileStream.Read(byte[] array, int offset, int count)

它允许您从缓冲区读取缓冲区,尽可能多的字节数,并告诉您实际读取了多少字节...这看起来就是您需要的所有功能。