在 C# 中为文件保留 2 个文件指针作为文件内容的索引

Keeping 2 filepointers for a file in C# as index to file content

我们创建 Fstream1 打开文件并存储文件的开头。 现在我们将 fstream1 复制到 fstream2。

注意:fstream1 将向上读取文件,而 fstream2 将向下读取文件。

在向上或向下读取数据块之前,相应的 fstream* 必须记住初始起始位置。

问题是当我们读取两个 fstream 的位置时,它正在移动,导致丢失要存储的位置。

示例:考虑初始 fstream1.pos = 500 & fstream2.pos =500。现在,如果我向上读取 200 个字符,fstream1.pos=300fstream2.pos 应该保持 500,在我们的例子中 fstream2.pos 也变成 300。 同样,如果我向下阅读。

fileStream1 = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 1, true);
fileStream2 = filestream1; // want this but without opening the file again

考虑 filestream 就像 C++ 中的 filepointers。 注意:以上任务是在 C# 中。

假设您将向上或向下扫描文件以更快地定位文件中的位置,我建议:-

1) 打开文件一次。

2) 保留两个变量 - UpPointer 和 DownPointer 并将它们初始化为 UpPointer = DownPointer = 500(来自您的示例)。

3) 进行读取或扫描时,更新相应的指针。