使用StreamWriter不';t工作\n(C#)
我对C#Stream Writer有问题。 我使用以下代码:使用StreamWriter不';t工作\n(C#),c#,newline,streamwriter,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) { s
//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编写文本,因为我不知道实际字符串是在同一行还是在新行中
什么使我错了
感谢您的帮助。请尝试
string text=@“l1\n\rl2\n\rl3\n\nl5”代码>。防止字符填充。使用环境。换行符作为行分隔符或“\r\n”
,如果您想手动操作。行分隔符(换行符)是\r\n
而不是\n\r
将文本更改为:
string text = "l1\r\nl2\r\nl3\r\nl5";
这是二进制格式:
writer.Write(text);
这是行顺序格式:
writer.WriteLine(text);
您必须使用WriteLine
format…您可以使用Environment.NewLine
如下:
streamWriter.Write(String.Concat(Enumerable.Repeat(Environment.NewLine, n).ToArray()));
我试图编写一个类并将“\n”s
但是我找到了富文本框
是啊!它的工作原理是:
RichTextBox rch = new RichTextBox();
rch.Text = cmn;
foreach (string l in rch.Lines)
strw.WriteLine(l);
尝试\r\n
而不是\n\r
或者更好,writer.WriteLine
为您提供了帮助这里的答案也提供了一些有用的信息:但是当我刚写了一个\n(通过l5)时,它也应该会出现。是否?这对您的问题没有任何影响,但您应该使用
语句将StreamWriter调用封装在一个中。环境的美妙之处在于,换行符
不必为代码运行的特定环境担心\r\n
的正确组合。您可以使用rch.NewLine=“\n\r”;要更改新行,变量n未知