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

Kie*_*ock 3 .net c# io text carriage-return

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

System.IO.File.AppendAllText(@"./WarningsLog.txt", line + "\n");
Run Code Online (Sandbox Code Playgroud)

use*_*710 13

您需要使用Environment.NewLine而不是\n,因为换行可能不止于此.在Windows中(如果我没有记错的话),默认是实际的\r\n

虽然,使用\r\n,将帮助你临时,使用Environment.NewLine是正确的方法去


bas*_*his 5

首先,有几种方法可以代表新系列.最常用的是:

  • UNIX的方式 -写的\n字.\n这里代表ñ ewline字符.
  • 窗口的方式 -写的\r\n字.\r这里是为了运输r eturn字符.

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

MSDN声明它代表:

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

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