【发布时间】:2016-02-11 12:41:02
【问题描述】:
我正在尝试以一种其他程序无法访问该文件的方式读取和写入同一个文件:
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();
文件永远不会被写入。如果我调试,我可以看到阅读器设法获取文件的内容,但编写器似乎无法写入文件。什么都没有发生。
我一直在看this question,这似乎和我的一样。但是我无法让它工作。
【问题讨论】:
-
你遇到了什么错误?
-
在
Write之后尝试sw.Flush();。 -
将
StreamReader和StreamWriter附加到同一个流(只有单个Position值)可能会导致各种恶作剧。我会在同一个文件上打开两个流,一个读取和一个写入。 -
我知道你可能喜欢这种方法,但为什么不以追加模式打开文件,这样它总是会追加到文件中,或者在需要时创建一个新文件?
-
@JoshuaBakker 最好编写一个
Creates the file along with a bool to overwrite / or not的方法,如果文件存在,则在该方法中写入 / 和或附加相同的东西。我发布了一个简单的工作示例
标签: c#