1

我想读取写入不断更新的文本文件的所有行。我尝试了以下方法,但这导致我阅读重复文件。

  1. 获取文件大小
  2. 从零读取到文件末尾
  3. 从步骤 1 中的文件大小开始读取到文件末尾
  4. 重复上一步

问题是我在读取文件时复制了写入文件的文件。这是因为我正在阅读文件的末尾。

我想做的是以下

  1. 获取文件大小
  2. 从步骤 1 读取从零到文件大小
  3. 获取文件大小
  4. 从步骤 1 中的文件大小开始读取到步骤 3 中的文件大小
  5. 重复前面的步骤

这样我就永远不会重复读取的行。

这可能吗,我想我需要为流阅读器/文件阅读器指定一个起点和终点来读取文件。

4

2 回答 2

0

如果您确实必须使用文件进行进程间通信,则可以使用内存映射文件进行调查。

于 2012-09-20T13:53:51.850 回答
0

您也许可以尝试这样的事情:

  1. 将文件重命名为临时名称
  2. 使用原始名称创建一个新的空文件
  3. 处理临时文件
  4. 重复

如果由于某种原因文件总是被其他进程锁定,您可以尝试对同一进程进行这种更改。

  1. 将文件复制到临时名称
  2. 注意文件大小
  3. 处理文件
  4. 重复,下一次从 FileSize + 1 开始处理
于 2012-09-21T06:08:02.500 回答