文本文件中的换行符(C#)

时间:2016-01-29 15:17:48

标签: c# .net text io carriage-return

我使用System.IO.File.AppendAllText将文本导出到C#中的文件,然后传入文本文件,然后将我要导出的文本\n添加到最后。当我查看文本文档时,它们不在不同的行上,尽管行之间存在令人讨厌的返回行字符。因此系统可能认为它是两行,但用户将其视为一行。如何在不生成文件的情况下自动修复查找替换?

System.IO.File.AppendAllText(@"./WarningsLog.txt", line + "\n");

2 个答案:

答案 0 :(得分:13)

您需要使用Environment.NewLine代替\n,因为换行可能不止于此。在Windows中(如果我没有弄错),默认值实际为\r\n

虽然使用\r\n,可以帮助您临时使用Environment.NewLine是正确的方法

答案 1 :(得分:5)

首先,有a couple of ways代表新行。 最常用的是:

  • unix方式 - 编写\n字符。 \n此处代表 n 电子书字符。
  • Windows方式 - 编写\r\n个字符。 \r这里用于运输 r eturn字符。

如果您正在编写与平台无关的内容,Environment.NewLine将为您完成工作并选择正确的字符。

MSDN声明它代表:

  

包含" \ r \ n"的字符串对于非Unix平台,或包含" \ n"的字符串对于Unix平台。

此外,在某些情况下,您可能希望使用System.IO.File.AppendAllLines作为行集合IEnumerable<string>并将其附加到文件中。不幸的是,我没有找到在那里使用哪个行分隔符,但我想它仍然是Environment.NewLine