繁体   English   中英

C#StreamWriter的问题

[英]Problem with C# StreamWriter

以下代码将文件(一次从数组中读取)读入字符串,替换字符串中匹配的模式,然后将其附加到文件中。

我希望它覆盖,而不是附加。 我在这里做错了什么?

using (FileStream fs = new FileStream(fileList[i], FileMode.Open))
using (StreamReader fileIn = new StreamReader(fs, true))
{
    String file = fileIn.ReadToEnd().ToLower();
    MessageBox.Show(file);


    if (file.Contains(oPath))
    {
        updated++;
        file = file.Replace(oPath, nPath);

        using (StreamWriter replaceString = new StreamWriter(fs, Encoding.Unicode))
        {
                replaceString.Write(file);
                listBoxResults.Items.Add(fileList[i]);
        }
    }
}

从文件读取后,您正在写入文件-因此FileStream的“游标”位于末尾。

与其自己处理流,不如使用它更简单:

String file = File.ReadAllText(fileList[i]).ToLower();

... perform replacements etc ...

File.WriteAllText(fileList[i], file);

“ StreamWriter”的第二个参数是:“ append”。 因此,您应该尝试:

StreamWriter replaceString = new StreamWriter(fs, false, Encoding.Unicode)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM