如何使用C#编辑文本文件?

时间:2010-08-15 08:40:08

标签: c# .net asp.net winforms

假设我有一个包含以下内容的文本文件:

  

您好!
  你好吗?

我想通过一个简单的应用程序调用该文件,该应用程序生成一个包含以下内容的输出文件:

buildLetter.Append("Hello!").AppendLine(); 
buildLetter.Append("How are you?").AppendLine();

如您所见,每一行都应放在“”之间。

任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:5)

void ConvertFile(string inPath, string outPath)
{
    using (var reader = new StreamReader(inPath))
    using (var writer = new StreamWriter (outPath))
    {
        string line = reader.ReadLine();
        while (line != null)
        {
            writer.WriteLine("buildLetter.Append(\"{0}\").AppendLine();",line.Trim());
            line = reader.ReadLine ();    
        }
    }
}

您应该自己添加一些I / O异常处理。

答案 1 :(得分:3)

如果您想将""附加到每一行,可以尝试合并ReadAllLinesWriteAllLines方法:

File.WriteAllLines(
    "output.txt",
    File
        .ReadAllLines("input.txt")
        .Select(line => string.Format("\"{0}\"", line))
        .ToArray()
);

请注意,这会将整个文件内容加载到内存中,因此对于非常大的文件无法正常工作。在这种情况下,流阅读器和编写器更适应。

答案 2 :(得分:0)

使用System.IO中的StreamReader类

请参阅此link以获取示例代码

您可能需要做的就是更改行

Console.WriteLine(sr.ReadLine());

Console.WriteLine(""""" + sr.ReadLine() + """"");  // handwritten code - not tested :-)

答案 3 :(得分:0)

对于小文本文件,这对我有用。

private void EditFile(string path, string oldText, string newText)
        {
            string content = File.ReadAllText(path);
            content = contenido.Replace(oldText, newText);
            File.WriteAllText(path, content);
        }