我正在开发一个需要读取不断更新的文本文件的应用程序。我需要读取文件直到文件结束(在那一刻),并且需要记住这个位置以便我下次读取文件。我计划在 C#.net 中开发这个应用程序。我如何执行这些部分读取并记住位置,因为 C# 在文件处理中不提供指针?
编辑:文件每 30 秒更新一次,新数据附加到旧文件中。我尝试保持先前读取的长度,然后从该位置读取数据,但两个应用程序无法同时访问该文件。
我正在开发一个需要读取不断更新的文本文件的应用程序。我需要读取文件直到文件结束(在那一刻),并且需要记住这个位置以便我下次读取文件。我计划在 C#.net 中开发这个应用程序。我如何执行这些部分读取并记住位置,因为 C# 在文件处理中不提供指针?
编辑:文件每 30 秒更新一次,新数据附加到旧文件中。我尝试保持先前读取的长度,然后从该位置读取数据,但两个应用程序无法同时访问该文件。
您可以维护文件中读取指针的最后一个偏移量。你可以这样做
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);
}
我计划在 C#.net 中开发这个应用程序。我如何执行这些部分读取并记住位置,因为 C# 在文件处理中不提供指针?
不完全确定你为什么会担心所谓的缺乏指针......我会调查int FileStream.Read(byte[] array, int offset, int count)
自己。
它允许您从偏移量读取到缓冲区,任意数量的字节,并告诉您实际读取了多少字节......这看起来是您需要的所有功能。
打开文件,读取所有内容,将读取的字节数保存在变量中(假设它是read_until_here
)。
下次您阅读文件时,只需获取新信息(以read_until_here
变量位置之后的为准...