使用C#更改文件中行结尾的最有效方法是什么?

fri*_*ley 0 c# file-io

我有一个程序X,它接收带有Windows \r\n ({CR}{LF})行结尾的文件.当提供带有unix文件结尾的文件时,程序会中断\n ({LF})

我想创建一个适配器,它将处理输入文件并提供一个带有Windows X行结尾的输出文件到程序X.

我试过了什么

  1. 使用读取输入文件 StreamReader
  2. 将每一行写入StreamWriter临时文件
  3. 删除原始文件
  4. 将临时文件复制为原始文件
  5. 删除临时文件

代码:

public void ShouldConvertFile()
{
    using (var reader = 
           new StreamReader(new FileStream(SampleFileName, FileMode.Open)))
    {
        if (File.Exists(SampleTemporaryFileName))
            File.Delete(SampleTemporaryFileName);

        using (var writer = new StreamWriter(
                  new FileStream(SampleTemporaryFileName, FileMode.Create)))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
                writer.WriteLine(line);
        }
    }

    if (File.Exists(SampleFileName))
        File.Delete(SampleFileName);

    File.Copy(SampleTemporaryFileName, SampleFileName);
    File.Delete(SampleTemporaryFileName);
}
Run Code Online (Sandbox Code Playgroud)

有没有更快/更好/更清洁的方式我可以做到这一点?

Cor*_*son 7

清洁器?也许这个:

File.WriteAllLines("output.txt", File.ReadLines("input.txt"));
Run Code Online (Sandbox Code Playgroud)

可能没有明显更快或更慢.