我有一个字符串,它在某些部分有\n个字符。我想把这个字符串写入文本文件。我尝试使用流编写器的写方法和WriteLine方法,而在这两种方法中,它都是用一行编写的。那么,是否有使用新行字符编写此字符串的简单方法,或者是否应该将其拆分为数组\n字符。
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 ;go G92 E0 ;set挤出机home\n M104 S73.0;设定温度\n”
其结果是;

发布于 2016-06-08 18:33:06
修复字符串中的行分隔符,以匹配平台所期望的内容。Windows期望\r\n。使用Environment.NewLine而不是"\n"。您的字符串以错误的方式生成。修复它正在建造的方式。
发布于 2016-06-08 18:36:30
Windows只读取CrLf (载货返回+线路馈送)行尾,即\r\n。如果您只放置了一个行提要字符(\n),那么记事本就会呈现它,就好像它是写在一行中一样。
尝试以类似于Notepad++的方式打开您的文件,它应该看起来像您希望的那样。
若要编写传输返回+行提要,请使用Environment.NewLine。
发布于 2016-06-08 18:36:01
上面的答案是准确的。但是,当您想插入换行符时,也应该考虑使用StreamWriter.WriteLine而不是StreamWriter.Write。
https://msdn.microsoft.com/en-us/library/system.io.streamwriter.writeline(v=vs.110).aspx
https://stackoverflow.com/questions/37710087
复制相似问题