我有一个.txt文件,其中包含:
123456
45789
check
check
Run Code Online (Sandbox Code Playgroud)
我想替换check为now,我写了下面的代码,但结果并不像我预期的那样:
123456
45789
now
nowheck
Run Code Online (Sandbox Code Playgroud)
我想知道为什么最后一行成了nowheck.
我的代码:
StreamReader reader = new StreamReader(File.OpenRead(@"C:\Users\jzhu\Desktop\test1.txt"));
string fileContent = reader.ReadToEnd();
reader.Close();
fileContent = fileContent.Replace("check", "now");
StreamWriter writer = new StreamWriter(File.OpenWrite(@"C:\Users\jzhu\Desktop\test1.txt"));
writer.Write(fileContent);
writer.Close();
Run Code Online (Sandbox Code Playgroud)
问题是File.OpenWrite重新打开同一个文件进行写入而不先截断它.
您可以使用File.Create或者更好地使用使读取和写入文本简单的方法:
string path = @"C:\Users\jzhu\Desktop\test1.txt";
string fileContent = File.ReadAllText(path);
fileContent = fileContent.Replace("check", "now");
File.WriteAllText(path, fileContent);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |