我们创建Fstream1,打开文件并存储文件的开头。 现在我们将fstream1复制到fstream2。
注意:fstream1
将向上读取文件,而fstream2将向下读取文件。
在向上或向下阅读大量数据之前,相应的fstream*
必须记住初始开始位置。
问题是当我们读到两个fstream的位置正在移动导致失去意图存储的位置时。
示例:考虑初始fstream1.pos = 500
& fstream2.pos =500
。现在,如果我读取超过200个字符fstream1.pos=300
但fstream2.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#中。
答案 0 :(得分:1)
假设您要在文件上向上或向下扫描以更快地找到文件中的位置,我建议: -
1)打开文件一次。
2)保留两个变量 - UpPointer& DownPointer并将它们初始化为UpPointer = DownPointer = 500(来自您的示例)。
3)进行读取或扫描时,更新相应的指针。