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

New line character in text file (C#)

我正在使用 System.IO.File.AppendAllText 将文本导出到 C# 中的文件,并传入文本文件,然后在末尾添加我要导出的文本 \n。当我查看文本文档时,它们不在不同的行上,尽管行与行之间有讨厌的 return 行字符。所以系统可能认为它是两行,但用户认为它是一条。每次生成文件时,如何在不进行查找替换的情况下自动修复此问题?

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

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

尽管使用 \r\n 会暂时帮助您,但使用 Environment.NewLine 才是正确的方法

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

  • unix方式——写\n字符。 \n这里代表n换行符。
  • windows方式——写出\r\n个字符。 \r 这里是回车 return 字符。

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

MSDN 声明它代表:

A string containing "\r\n" for non-Unix platforms, or a string containing "\n" for Unix platforms.

此外,在某些情况下,您可能希望使用 System.IO.File.AppendAllLines,它采用 IEnumerable<string> 作为行集合并将其附加到文件。里面用的是Environment.NewLine.

您可以尝试使用一些特定于文件的字符检查来构建它,例如 换行符、制表符等.... 这是检查换行符和制表符的示例代码:

 public static string Replace()
        {  
             string rLower =   words.ToLower().Replace(Environment.NewLine, "<replaced_newLine>");
            rLower = rLower.Replace("\t", "<replaced_Tabulation>");
            return rLower;
        }

当然,您可能有很多不同的组合,其中需要更改的项目后跟“”或“\n”或“\r\n”或“\t”