Tôi có một tệp chứa dữ liệu mà tôi muốn theo dõi các thay đổi, cũng như thêm các thay đổi của riêng tôi. Hãy suy nghĩ như "Tail -f foo.txt".đồng thời đọc-ghi một tập tin trong C#
Dựa trên this thread, có vẻ như tôi chỉ nên tạo luồng phim và chuyển nó cho cả nhà văn và người đọc. Tuy nhiên, khi người đọc đến cuối tập tin gốc, nó không nhìn thấy các bản cập nhật tôi viết.
Tôi biết nó có vẻ giống như một tình huống kỳ lạ ... nó là một thử nghiệm hơn để xem nếu nó có thể được thực hiện.
Đây là trường hợp ví dụ tôi đã cố gắng:
foo.txt:
một
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();
Sau khi vượt qua "f", trình đọc trả về giá trị rỗng.
Một người đăng tải đã đặt thứ gì đó về việc có hai luồng tệp trỏ đến cùng một đối tượng ... đã hoạt động.Ngay cả khi người đọc đến cuối tệp, nếu người viết cập nhật, luồng người đọc nhận được cả hai kết quả. – tbischel
Vâng, đó là tôi xóa bài đăng của tôi sau khi nó không hoạt động như tôi mong đợi. Tôi đã xóa nó với một lời giải thích lý do tại sao ... – MarkPflug