使用StreamWriter不起作用\ n(C#)

时间:2012-11-12 16:05:04

标签: c# newline streamwriter

我遇到了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或\ ra█(这意味着不显示符号),整个字符串在一行... 稍后文本应该移交函数,所以我不能用.WriteLine写文本,因为我不知道实际的字符串是在同一行还是在新行中。

是什么让我错了?

感谢您的帮助。

6 个答案:

答案 0 :(得分:34)

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

答案 1 :(得分:1)

行分隔符(newLine)为\r\n而非\n\r

将您的文字更改为:

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

这是二进制格式:

writer.Write(text); 

这是线序格式:

writer.WriteLine(text); 

您必须使用WriteLine格式...

答案 4 :(得分:0)

您可以像这样使用Environment.NewLine

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

答案 5 :(得分:0)

我试着写一个班级并分开" \" s 但我找到了丰富的文字框!!

是啊!它有效:

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