在同一流中读取和写入文件

EJS*_*EJS 4 c#

我正在尝试以某种方式读取和写入同一文件,以便其他程序无法访问其间的文件:

  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)

该文件永远不会被写入。如果我调试,我可以看到读取器设法获取文件的内容,但写入器似乎无法写入文件。什么都没发生。

我一直在看这个问题,似乎和我的一样。但是我无法让它工作。

Hab*_*bib 5

只是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#中同时读写文件(打开多个流进行读写)