1

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

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

4

3 回答 3

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);
 }
于 2013-11-10T11:18:24.483 回答
1

我计划在 C#.net 中开发这个应用程序。我如何执行这些部分读取并记住位置,因为 C# 在文件处理中不提供指针?

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

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

于 2013-11-10T11:19:24.937 回答
1

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

下次您阅读文件时,只需获取新信息(以read_until_here变量位置之后的为准...

于 2013-11-10T11:01:09.223 回答