因为我使用非拉丁字母,如果我使用StreamWriter,则字符不正确。
String line;
StreamReader sr = new StreamReader(@"C:\Users\John\Desktop\result.html");
line = sr.ReadLine();
while (line != null)
{
line = sr.ReadLine();
if (line.Contains("</head>"))
{
line = "<img src=\"result_files\\image003.png\"/>" + line;
}
}
sr.Close();
这里我正在编辑我要在文件中编辑的字符串,但我没有将它保存在同一个文件中。怎么做?
答案 0 :(得分:0)
如果您使用接受编码的StreamWriter constructors之一,则不应该对不正确的字符有任何问题。您也正在阅读阅读方法的第一行。
Encoding encoding;
StringBuilder output = new StringBuilder();
using (StreamReader sr = new StreamReader(filename))
{
string line;
encoding = sr.CurrentEncoding;
while ((line = sr.ReadLine()) != null)
{
if (line.Contains("</head>"))
{
line = "<img src=\"result_files\\image003.png\"/>" + line;
}
output.AppendLine(line);
}
}
using (StreamWriter writer = new StreamWriter(filename, false, encoding))
{
writer.Write(output.ToString());
}
答案 1 :(得分:0)
我认为最简单的方法是
以读/写模式打开文件
从文件中读取所有内容
在内存中进行修改
将其重写回文件而不是附加..
答案 2 :(得分:-4)
您使用StreamReader。这个名字说出它的功能。阅读!
脏代码
if (File.Exists(fileName))
{
int counter = 1;
StringBuilder sb = new StringBuilder();
foreach (string s in File.ReadAllLines(fileName, Encoding.Default))
{
if (s.Contains("</head>"))
{
s= "<img src=\"result_files\\image003.png\"/>" + line;
}
sb.AppendLine(s);
counter++;
}
File.WriteAllText(fileName, sb.ToString(), Encoding.Default);
}