我正在尝试以某种方式读取和写入同一文件,以便其他程序无法访问其间的文件:
FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
StreamReader sr = new StreamReader(fs);
StreamWriter sw = new StreamWriter(fs);
newString = sr.ReadToEnd() + "somethingNew";
sw.Write(newString);
fs.Close();
Run Code Online (Sandbox Code Playgroud)
该文件永远不会被写入。如果我调试,我可以看到读取器设法获取文件的内容,但写入器似乎无法写入文件。什么都没发生。
我一直在看这个问题,似乎和我的一样。但是我无法让它工作。
只是Flush您对文件的更改,sw.Flush();在关闭流之前进行。喜欢:
string filePath = "test.txt";
FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
StreamReader sr = new StreamReader(fs);
StreamWriter sw = new StreamWriter(fs);
newString = sr.ReadToEnd() + "somethingNew";
sw.Write(newString);
sw.Flush(); //HERE
fs.Close();
Run Code Online (Sandbox Code Playgroud)
你可能会看到这篇文章在C#中同时读写文件(打开多个流进行读写)