У меня есть текстовый файл, который я хочу прочитать построчно и записать положение в текстовом файле, как я иду. После прочтения любой строки файла программа может выйти, и мне нужно возобновить чтение файла со следующей строки, когда он возобновится.
Вот пример кода:
using (FileStream fileStream = new FileStream("Sample.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
fileStream.Seek(GetLastPositionInFile(), SeekOrigin.Begin);
using (StreamReader streamReader = new StreamReader(fileStream))
{
while (!streamReader.EndOfStream)
{
string line = streamReader.ReadLine();
DoSomethingInteresting(line);
SaveLastPositionInFile(fileStream.Position);
if (CheckSomeCondition())
{
break;
}
}
}
}
Когда я запускаю этот код, значение fileStream.Position
не меняется после прочтения каждой строки, оно продвигается только после прочтения нескольких строк. Когда оно меняется, оно увеличивается кратно 1024. Теперь я предполагаю, что под обложками происходит некоторая буферизация, но как я могу записать точное положение в файле?