【问题标题】:\n are not added in text file\n 未添加到文本文件中
【发布时间】:2015-02-05 14:43:21
【问题描述】:

我正在尝试用 C# 写入文本文件。我的意见如下

string input = "46 47\n 48 49";

我希望这会像下面这样写

46 47

48 49

但它写得像

46 47 48 49

我正在使用以下代码

string input = "46 47\n 48 49";
string path = @"d:\temp\MyTest.txt";

File.WriteAllText(path, input);

【问题讨论】:

  • Windows 上的换行符(大概)是 \r\n。使用Environment.NewLine 构造以获得更好的体验。
  • 转义\r\n

标签: c# file io text-files


【解决方案1】:

使用\r\nEnvironment.NewLine 喜欢:

string input = "46 47\r\n48 49";

或者

string input = "46 47" + Environment.NewLine + "48 49";

编辑: 至于修改现有的字符串值,你可以这样做String.Replace like:

string newValue = input.Replace("\n",Environment.NewLine);

然后在File.WriteAllText中使用newValue

【讨论】:

    【解决方案2】:

    您应该使用Environment.NewLine 属性插入新行:

    string input = "46 47" + Environment.NewLine + "48 49";
    

    如 cmets 中所述,Windows 环境下的新行可以使用\r\n 实现,但最好使用Environment.NewLine 选项,如 MSDN 所述:

    NewLine的属性值是专门为.NET Framework的当前平台和实现定制的常量

    【讨论】:

    • 问题是字符串是动态字符串,所以我无法添加 Environment.NewLine
    • 如果它是动态的,你打算如何添加\r\n?
    • 首先我从一个有新行的文本文件中读取。结果“\n”被分配到字符串变量中
    • 可能是您读取文件的方式不正确?为什么不试着逐行阅读呢?
    【解决方案3】:

    您是否正在使用 Nodepad 查看文本文件?记事本无法将换行符单独处理为 U+000A。它需要 CRLF 序列。

    您的程序正在编写您想要的内容,但您的编辑器无法正确显示。

    正如 J. Steen 所说,这里更好的选择是使用 Environment.NewLine

    【讨论】:

      【解决方案4】:

      我找到了办法

      string input = "46 47\n\n48 49";
      
                  using (StreamWriter sw = new StreamWriter(@"d:\Software\MyTest.txt", true))
                  {
                      foreach (char s in input)
                      {
                          if (s == '\n')
                          {
                              sw.Write(Environment.NewLine);
                          }
                          else
                          sw.Write(s);
                      }
                  }
      

      【讨论】:

      • 你可以这样做:string newValue = input.Replace("\n",Environment.NewLine );
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 2016-08-29
      相关资源
      最近更新 更多