【问题标题】:With StreamWriter doesn't work \n (C#)使用 StreamWriter 不起作用 \n (C#)
【发布时间】:2012-11-01 01:50:38
【问题描述】:

我的 C# Stream Writer 有问题。 我使用以下代码:

//Constructor
public EditorTXTFile
{
   FileStream f = File.Create(System.IO.Directory.GetCurrentDirectory() + "\\Output.txt");
   f.Close();
}

//Function AddText
public void AddLogFileText(string text)
{         
   string text = "l1\n\rl2\n\rl3\n\nl5";

   StreamWriter writer = new StreamWriter(System.IO.Directory.GetCurrentDirectory() + "\\Output.txt", true);
   writer.Write(text);         

   writer.Close();
}

当我打开 Output.txt 时,它显示为 \n 或 \r 一个 █(这意味着不可显示的符号)并且整个字符串在一行中...... 以后应该文本交出函数,所以我不能用.WriteLine写文本,因为我不知道实际的字符串是在同一行还是在新行。

是什么让我错了?

感谢您的帮助。

【问题讨论】:

  • 试试\r\n而不是\n\r
  • 或者更好的是,writer.WriteLine 会为您解决问题
  • 这里的答案也有一些有用的信息:stackoverflow.com/questions/1885900/…
  • 但是当我只写一个 \n (By l5) 时它也应该去。还是不行?
  • 对您的问题没有任何影响,但您应该将 StreamWriter 调用包装在 using 语句中。

标签: c# newline streamwriter


【解决方案1】:

试试string text = @"l1\n\rl2\n\rl3\n\nl5";。防止字符填充。

【讨论】:

    【解决方案2】:

    使用Environment.NewLine 作为行分隔符,如果您想手动操作,请使用"\r\n"

    【讨论】:

    • Environment.NewLine 的美妙之处在于,对于代码运行的特定环境,您不必担心 \r\n 的正确组合。
    【解决方案3】:

    行分隔符(newLine) 是 \r\n 而不是 \n\r

    将您的文本更改为:

           string text = "l1\r\nl2\r\nl3\r\nl5";
    

    【讨论】:

      【解决方案4】:

      这是二进制格式:

      writer.Write(text); 
      

      这是行顺序格式:

      writer.WriteLine(text); 
      

      你必须使用WriteLine 格式...

      【讨论】:

        【解决方案5】:

        你可以像这样使用Environment.NewLine

        streamWriter.Write(String.Concat(Enumerable.Repeat(Environment.NewLine, n).ToArray()));
        

        【讨论】:

        • 变量n未知
        【解决方案6】:

        我尝试编写一个类并分隔 "\n"s 但我找到了富文本框!!

        是的!它有效:

                RichTextBox rch = new RichTextBox();
                rch.Text = cmn;
                foreach (string l in rch.Lines)
                    strw.WriteLine(l);
        

        【讨论】:

        • 你可以使用 rch.NewLine="\n\r";改变新线环境
        猜你喜欢
        • 2017-03-23
        • 2017-11-27
        • 2016-03-17
        • 1970-01-01
        • 2018-07-13
        • 1970-01-01
        • 2015-09-02
        • 2012-01-02
        • 1970-01-01
        相关资源
        最近更新 更多