одновременное чтение и запись файла в C #

У меня есть файл, содержащий данные, изменения в которых я хотел бы отслеживать, а также добавлять собственные изменения. Думайте как "Tail -f foo.txt".

На основании этого потока , похоже, мне нужно просто создать файловый поток и передать его как писателю, так и читателю. Однако когда читатель достигает конца исходного файла, он не видит обновлений, которые я пишу сам.

Я знаю, что это кажется странной ситуацией ... это скорее эксперимент, чтобы увидеть, можно ли это сделать. a
b
c
d
e
f


        string test = "foo.txt";
        System.IO.FileStream fs = new System.IO.FileStream(test, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite);

        var sw = new System.IO.StreamWriter(fs);
        var sr = new System.IO.StreamReader(fs);

        var res = sr.ReadLine();
        res = sr.ReadLine();
        sw.WriteLine("g");
        sw.Flush();
        res = sr.ReadLine();
        res = sr.ReadLine();
        sw.WriteLine("h");
        sw.Flush();
        sw.WriteLine("i");
        sw.Flush();
        sw.WriteLine("j");
        sw.Flush();
        sw.WriteLine("k");
        sw.Flush();
        res = sr.ReadLine();
        res = sr.ReadLine();
        res = sr.ReadLine();
        res = sr.ReadLine();
        res = sr.ReadLine();
        res = sr.ReadLine();

После прохождения "f" читатель возвращает null.

14
задан Community 23 May 2017 в 12:26
поделиться