19

我对 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 因为我不知道实际字符串是在同一行还是在新行。

是什么让我错了?

谢谢你的帮助。

4

6 回答 6

37

Environment.NewLine用作行分隔符,或者"\r\n"如果您想手动操作。

于 2012-11-12T16:09:06.653 回答
2

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

将您的文本更改为:

       string text = "l1\r\nl2\r\nl3\r\nl5";
于 2012-11-12T16:09:20.837 回答
0

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

于 2012-11-12T16:09:05.177 回答
0

这是二进制格式:

writer.Write(text); 

这是行顺序格式:

writer.WriteLine(text); 

你必须使用WriteLine格式...

于 2013-05-26T15:38:54.550 回答
0

你可以Environment.NewLine这样使用:

streamWriter.Write(String.Concat(Enumerable.Repeat(Environment.NewLine, n).ToArray()));
于 2014-01-17T10:44:11.857 回答
0

我试图写一个类并分隔“\n”,但我找到了富文本框!

是的!有用:

        RichTextBox rch = new RichTextBox();
        rch.Text = cmn;
        foreach (string l in rch.Lines)
            strw.WriteLine(l);
于 2015-02-06T09:24:08.630 回答