如何使用C#中的streamwriter编写已经具有新行字符的字符串?
我有一个字符串,在某些部分有\n个字符。我想把那个字符串写入文本文件。我尝试streamwriter的Write和WriteLine方法,两种方法都在一行中写入。那么,是否有任何简单的方法可以使用新行字符写入此字符串,或者是否应该按字符将其拆分为数组如何使用C#中的streamwriter编写已经具有新行字符的字符串?,c#,streamwriter,C#,Streamwriter,我有一个字符串,在某些部分有\n个字符。我想把那个字符串写入文本文件。我尝试streamwriter的Write和WriteLine方法,两种方法都在一行中写入。那么,是否有任何简单的方法可以使用新行字符写入此字符串,或者是否应该按字符将其拆分为数组 Microsoft.Win32.SaveFileDialog sfd = new Microsoft.Win32.SaveFileDialog(); sfd.Filter = "g-code|*.gcode;"; i
Microsoft.Win32.SaveFileDialog sfd = new Microsoft.Win32.SaveFileDialog();
sfd.Filter = "g-code|*.gcode;";
if (sfd.ShowDialog() == true)
{
string path = System.IO.Path.GetFullPath(sfd.FileName);
System.IO.StreamWriter writer = new System.IO.StreamWriter(sfd.OpenFile());
writer.Write(GcodeTxt);
writer.Dispose();
writer.Close();
MessageBox.Show("File is saved.", "Saved", MessageBoxButton.OK, MessageBoxImage.Information);
}
样本GcodeTxt:“G21;公制良好!\n G90;绝对定位\n T0;选择新挤出机\n G28;回家\n G92 E0;设置挤出机回家\n M104 S73.0;设置温度\n”
结果是,
您的GcodeTxt
可能已将\n格式化为常规字符串而不是特殊字符。即使向文本中添加\r\n,它也将被格式化为常规字符串字符
对于跨环境换行符,请使用Environment.NewLine
而不是\n
:
(@“G21;度量值很好!”+Environment.NewLine+@“G90;…
修复字符串中的行分隔符,使其与平台期望的一致。Windows期望\r\n
。使用环境。NewLine
而不是“\n“。您的字符串是以错误的方式生成的。修复它正在被构建的方式。 < P>以上的答案是准确的。但是,您也应该考虑使用<代码>流写器.WrreDetry而不是<代码>流写器。在插入新行时编写< <代码> > < /P>
Windows记事本只读取CrLf(回车+换行)的行尾,即\r\n
。如果只输入换行字符(\n
),则记事本会将其呈现为一行
试着用记事本++之类的东西打开你的文件,它看起来应该和你想要的一样
要编写回车符+换行符,请使用环境。换行符。GcodeTxt是大量数据还是少量数据?请注意,Windows记事本只读取\r\n
行尾,而不仅仅是\n
。请尝试用类似于记事本++的方式打开文件,看看它是否应该这样做。我不是用Notepad++打开它epad++,这正是我所期望的。因此,要在windows记事本中实现这一点,我应该包括\r\n附近的每个地方吗?是的。最简单的方法是使用环境。换行符
,它将在windows平台上返回\r\n
。这取决于他是以块的形式获得不同的行,还是以长字符串的形式获得不同的行