我遇到了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写文本,因为我不知道实际的字符串是在同一行还是在新行中。
是什么让我错了?
感谢您的帮助。
答案 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);